位置: 编程技术 - 正文

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的核心)

  • 土地增值税的扣除项目包括哪几项
  • 变更税务所怎么操作
  • 增值税普通发票怎么开
  • 股权转让交印花
  • 小规模纳税人开普票要交税吗
  • 小规模纳税人利息收入增值税税率
  • 金税四期上线后对企业的影响
  • 发票开成了下属机构的可以报销吗
  • 公司三年零申报后注销
  • 房地产企业印花税税目
  • 期间费用包括哪三种
  • 免抵退税的账务处理
  • 小规模纳税人不允许开具零税率发票
  • 企业所得税前列支的费用
  • 中国工商银行社保查询
  • 离线开票时间超限怎么办 发票都已经报送
  • 提现的现金支票是什么
  • 普通发票需要什么
  • 房地产企业开具零税率发票
  • 无偿提供服务需要交增值税吗
  • 税控盘上报
  • 夫妻房产分割哪家好
  • 增值税查补税款可以开发票吗
  • 计提本月城市维护建设税,教育费附加500元
  • 收到投资款怎么处理帐
  • 如何免费获取Win11企业版
  • u盘ghost下载
  • 聘请专家费用管理办法
  • 电脑网速不好怎么提升网速
  • 企业库存太多后果
  • 收到采购发票未开票
  • 当月收到服务成本票下个月才开出发票
  • 房地产销售代理是什么意思
  • 单位中秋节福利发放物品
  • 企业支付宝收到钱到哪里
  • 收费公路通行费财政电子票据可以抵扣吗
  • 来料加工交关税吗
  • 逾期未退保证金怎么办
  • 富士山的岩石属于什么岩
  • sass转化为css
  • 成本法处置子公司丧控合并层面
  • vuecli3创建项目的过程
  • pytorch example
  • vue3项目实战
  • php如何实现重载
  • 计提营业税金及附加比例
  • 增值税发票打印机
  • 银行的抵债资产会过到银行名下吗
  • 生产型外资企业
  • 金蝶软件如何建立新账套
  • 财务软件在建立账套功能中提供了
  • 合伙企业可以列入法人吗
  • 长期应收款的主要类型
  • 公对公开税票流程
  • 接受现金捐赠怎么做会计分录
  • 2019员工旅游费最新规定
  • 税金及附加的核算范围
  • 所得税为负数会计分录
  • 代理进口产品
  • 内退文件2018
  • 子公司如何向母公司开户
  • centos rpc
  • xp禁用win键
  • 键盘设施
  • linux 维护命令
  • 怎么把win8界面换成win7
  • unity如何合并物体
  • android学习路线
  • js中math.pow
  • node.js的安装步骤
  • android零基础
  • python制作爬虫教程
  • JQuery绑定事件的函数是
  • 河南省人民医院和郑大一附院哪个好
  • 重庆国税12366电子税务局官网入口
  • 差额征税可以全部抵成本么?
  • 商场销售高档化妆品需要缴纳消费税吗
  • 浙里办扫码在哪里
  • 公司被分立,应将分立后的单位
  • 房地产开发企业土地成交额与去年同期相比增长约
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设