位置: 编程技术 - 正文

javascript基础语法——全面理解变量和标识符(javaScript基础语法数据类型)

编辑:rootadmin

推荐整理分享javascript基础语法——全面理解变量和标识符(javaScript基础语法数据类型),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript基础编程,javascript语言入门教程,JavaScript基础语法,javaScript基础语法数据类型,javascript语言基础,JavaScript基础语法,JavaScript基础语法详解,JavaScript基础语法详解 pdf,内容如对您有帮助,希望把文章链接给更多的朋友!

关于javascript,第一个比较重要的概念是变量,变量的工作机制是javascript的基本特性。实际上,变量是标识符的一种。本文将详细介绍变量和标识符

定义  

标识符(Identifier)就是一个名字,用来对变量、函数、属性、参数进行命名,或者用做某些循环语句中的跳转位置的标记

在日常生活中,有些东西是固定不变的,有些东西则会发生变化。例如,人的姓名和生日是固定不变的,但心情和年龄却会随着时间变化而变化。人们把那些会发生变化的东西称为变量

当程序需要将值保存起来以备将来使用时,便将其赋值给一个变量。变量(variable)是一个用于保存值的占位符,可以通过变量名称来获得对值的引用

命名规则  

在词法结构一文中,我们介绍到javascript是一门区分字母大小写的语言,且和其他任何编程语言一样,javascript保留了一些标识符为自己所用,保留字不能用做普通的标识符

[注意]保留字包括关键字、未来保留字、空字面量和布尔值字面量

javascript标识符名允许包含字母、数字、美元符号和下划线(但第一个字符不允许是数字)

javascript允许标识符中出现 Unicode字符全集中的字母和数字(包括中文)。因此,程序员也可以使用非英语语言或数学符号来书写标识符

[注意]出于可移植性和易于书写的考虑,通常我们不使用扩展的ASCII或Unicode字符

通常驼峰格式是标识符命名的首选格式,第一个字母小写,剩下的每个单词的首字母大写

对于不同的数据类型,javascript有约定俗成的标识符名命名规则

变量声明

声明

在javascript中,使用一个变量之前应当先声明(declare),变量是使用关键字var(variable的缩写)来声明的

也可以通过一个var关键字来声明多个变量

赋值

把值存入变量的操作称为赋值(assignment)。一个变量被赋值以后,我们就说该变量包含这个值

给变量第一次赋值的过程,叫初始化

我们可以将变量的初始赋值和变量声明合写在一起

如果未在var声明语句中给变量指定初始值,那么虽然声明了这个变量,但在给它存入一个值之前,它的初始值就是undefined

在for循环和for-in循环中同样可以使用var语句,这样可以更简洁地声明在循环语法内中使用的循环变量

变量可以在声明时赋值,但不能有其他操作,如+=、-=等

重复声明

使用var语句重复声明变量是合法且无害的,如果重复声明且带有赋值操作,相当于重新赋值

javascript基础语法——全面理解变量和标识符(javaScript基础语法数据类型)

遗漏声明

如果试图读取一个没有声明的变量的值,javascript会报错

javascript允许遗漏声明,即直接对变量赋值而无需事先声明,赋值操作将自动声明该变量

但是,在ECMAScript5严格模式中,给一个没有声明的变量赋值会报错

变量特性  

javascript变量是弱类型(也叫松散类型)的,所谓松散类型就是可以用来保存任何类型的数据

编程语言分类动态类型语言和静态类型语言两种。 动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,不用给任何变量指定数据类型,该语言会在第一次赋值给变量时,在内部将数据类型记录下来。javascript就是动态类型语言的代表。

在javascript中,可以在修改变量值的同时修改值的类型

变量松散类型的特性总结起来有两点:一是声明时不用给变量指定数据类型;二是赋值时可以修改数据类型

变量作用域

变量的作用域(scope),又叫执行环境(execution context),是程序源代码中定义这个变量的区域

作用域分为全局作用域和函数作用域(又叫局部作用域)两种

全局作用域是最外围的一个执行环境,在web浏览器中,全局执行环境被认为是window对象。所有全局变量和函数都是作为window对象的属性和方法创建的。全局变量拥有全局作用域,在javascript代码中的任何地方都是有定义的。全局作用域直到应用程序退出例如关闭网页或浏览器时才会被销毁

在函数内声明的变量只在函数体内有定义。它们是局部变量,作用域是局部性的。函数参数也是局部变量,它们只在函数体内有定义。函数作用域中的所有代码执行完毕后,该作用域被销毁,保存在其中的所有变量和函数定义也随之销毁

如果省略var操作符,则会创建一个全局变量

虽然省略var操作符可以定义全局变量,但并不推荐。在局部作用域中定义的全局变量很难维护,而且如果有意地忽略了var操作符,也会由于相应变量不会马上就有定义而导致不必要的混乱,给未经声明的变量赋值在严格模式下会导致抛出ReferenceError错误

在函数体内,局部变量的优先级高于同名的全局变量,如果在函数内声明的一个局部变量或者函数参数中带有的变量和全局变量重名,那么全局变量就被局部变量遮盖

声明提升(hoisting)

块级作用域

块级作用域是指花括号内的每一段代码都具有各自的作用域,而javascript没有块级作用域。javascript只有函数作用域:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的

这意味着,变量在声明之前甚至已经可用。javascript这个特性被非正式地称为声明提升(hoisting),javascript函数里声明的所有变量(不涉及赋值)都被提前到函数体的顶部

[注意]其实除了变量提升,函数也被提升,到函数部分会有详细介绍

javascript中没有块级作用域,所以一些程序员特意将变量声明放在函数体顶部,这种源代码非常清晰地反映了真实的变量作用域

属性变量

当声明一个javascript全局变量时,实际上是定义了全局对象window的一个属性

当使用var声明一个变量时,创建的这个变量是不可配置的,也就是说这个变量无法通过delete运算符删除

如果没有使用严格模式并给一个未声明的变量赋值的话,javascript会自动创建一个全局变量,以这种方式创建的变量是全局对象的正常的可配置属性,并可以删除它们

javascript全局变量是全局对象的属性,这是在ECMAScript中强制 规定的。局部变量当做跟函数调用相关的某个对象的属性。ECMAScript3称为调用对象(call object),ECMAScript5称为声明上下文对象(declarative environment record)。javascript允许使用this关键字来引用全局对象,却没有办法可以引用局部变量中存放的对象。这种存放局部变量对象的特有性质,是一种对我们不可见的内部实现

以上这篇javascript基础语法——全面理解变量和标识符就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

JavaScript核心语法总结(推荐) 本文介绍了JavaScript的基本(常用)语法,供大家参考。Overview先说一下Javascript该怎么写。两种形式,一种是直接把JavaScript写在HTML页面里,另一种是存

浅谈JavaScript 标准对象 在JavaScript的世界里,一切都是对象。但是某些对象还是和其他对象不太一样。为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一

javascript三种代码注释方法 javascript语言里面的注释方法有三种。第一种是多行注释"/**/",一般js文件开头,介绍作者,函数等信息。/**author:xxx*day:--*/第二种注释方法是最常见

标签: javaScript基础语法数据类型

本文链接地址:https://www.jiuchutong.com/biancheng/370091.html 转载请保留说明!

上一篇:JavaScript中匿名函数的用法及优缺点详解(javascript中匿名函数)

下一篇:JavaScript核心语法总结(推荐)(javascript的核心)

  • 金税盘版开票软件怎么升级
  • 应纳所得税额的税率
  • 个体户可以开多个银行账户吗
  • 金三财务报表如何更正
  • 固定资产报废清理净损失属于什么费用
  • 负数发票报税不让填怎么办
  • 票据遗失可以采取哪些补救措施
  • 包装物押金是含税价格吗
  • 购买的车位是否有产权证
  • 委托贷款业务涉嫌诈骗吗
  • 红冲去年的收入怎么做账
  • 私募过来的资金怎么做会计分录?
  • 企业如何申请科研项目
  • 税控盘服务费减免政策文件
  • 服装厂委托物资零散加工成品如何做账呢?
  • 小规模税务30万免税政策
  • 公司还没有成立,前期的费用怎么开发票呢
  • 火车票飞机票进项税额怎么抵扣
  • 高新技术企业的行业
  • 员工住院押金会计处理
  • 存货折扣怎样做账
  • 印花税的征税范围及税率
  • 诉讼费计入哪里
  • mac屏幕共享要打开什么权限
  • PHP:mb_strtolower()的用法_mbstring函数
  • 笔记本cpu排行天梯
  • php怎么学
  • PHP:session_unregister()的用法_Session函数
  • 应缴纳增值税的公式
  • staruml教程
  • linux架构师是做什么的
  • 红字发票信息表填好后再怎么操作
  • 蒂内河畔圣艾蒂安小镇,法国阿尔卑斯省 (© CAVALIER Michel/hemis.fr/Alamy Stock Photo)
  • 税收协定与国内税法发生冲突
  • 金税三期税收管理系统响应异常返回信息:没有查询
  • 处置固定资产的增值税怎么处理
  • yolo 模型训练
  • 银行同业存放业务管理办法
  • 对公账号备用金怎么用
  • 先做凭证再付款
  • 固定资产投资入股是否缴纳增值税
  • 企业合并属于非企业吗
  • 应付职工薪酬的
  • 个人报销电话费开发票是个人名还是公司名
  • 个税返还款增值税税率
  • 上个月计提多了,这个月怎么办?
  • 减免税需要纳税申报吗
  • 资产减值损失如何计算
  • 代扣和代缴的区别
  • 库存现金多出来怎么调账
  • 费用化资本化对税收的影响
  • 居民企业与非居民企业的纳税差异
  • 中药饮片盘点损耗率 法律
  • 暂估收入怎么做分录
  • 哪些发票必须注销
  • 银行对账单怎么打印
  • 账簿的概念与分类
  • 在幻灯片母版中
  • win8系统怎样查看本机的ip地址
  • xp系统的硬盘装到win7电脑
  • 电脑系统管理员已阻止这个应用怎么办
  • 安装linux出现grub的原因
  • win7怎么录屏为什么不是视频
  • unity de
  • javascript的canvas
  • cocos2dx 4.0
  • android:PopupWindow的使用场景和注意事项
  • ubuntu用root运行
  • linux shell怎么用
  • javascript正则匹配两个点
  • shell脚本的fi
  • jqueryanimate动画
  • vue导航组件
  • js日历插件日期选择器
  • 安卓开发代码大全
  • js复制对象的方法有哪几种
  • Jquery实现$.fn.extend和$.extend函数
  • js判断输入框字符长度
  • javascript面向对象精要
  • 电子税务网没开通怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设