位置: 编程技术 - 正文

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

  • 材料用于非应税项目
  • 不征税收入和免税收入所对应的成本与费用能否税前扣除
  • 筹资现金流量净额为负说明了什么问题
  • 换出资产为存货为什么不
  • 企业股权资本的组成
  • 红字撤销需要带什么去税务局
  • 个体工商户生产经营所得税率
  • 工程预收账款的会计分录
  • 现金支票作废需要签字吗
  • 技术服务费收入怎么确认收入
  • 生产成本里面的工会经费
  • 用银行汇票付款的会计分录
  • 重新建账要以前的期初余额吗
  • 房屋租赁费发票可以抵扣吗
  • 辅导期一般纳税人预缴增值税
  • 营改增后小规模纳税人税率是多少
  • 最新房产税费
  • 实际缴纳的增值税比计提的多
  • 公司购买茶叶应计入哪里
  • 第二季度的利润表报错了,怎么重新报
  • Win11文件资源管理器将更新
  • 如何将win11笔记本连接到家庭打印机上
  • 上个月转出的进项税,下个月申报
  • u盘装系统?
  • 饭店开业请客说什么
  • PHP:pg_lo_read()的用法_PostgreSQL函数
  • 无形资产的界定及特点
  • 专项资金下达期限
  • linux如何配置ssh
  • xwizard.exe是什么
  • 借入长期借款的利息
  • 爱德华王子岛的气候
  • uni-app介绍
  • 图像自动生成
  • 多交增值税可以做营业外支出吗
  • uni-simple-router 跳转无效
  • 抵债不动产处置如何征税
  • SQL Server 2000向SQL Server 2008 R2推送数据图文教程
  • 农村合作社怎么办理流程
  • 食堂辅助账的账务处理
  • 福州锦元房地产开发有限
  • 销售退回所得税怎么做账
  • 企业注销清算报告模板
  • 印花税如何申请退税
  • 以前年度的损益调整为负值说明什么
  • 对外支付3万美元怎么算
  • 已经认证抵扣的发票,要退回,怎么处理
  • 汇算清缴预缴
  • 年终缴税比例
  • 所得税费用结转分录
  • 广告费属于管理费用的哪一类
  • 售后回租租赁合同买车有效吗
  • 损益明细表计提企业所得税
  • 付给外包公司的垃圾处理费会计分录
  • 分公司第二季度总结报告
  • 新增注册资金
  • sql存储过程实例有哪些
  • sqlserver聚集索引和非聚集索引会不会改变原Id
  • mac下安装anaconda
  • 开机无法进入桌面,无法调用资源管理器
  • linux 使用
  • winxp系统开机启动项
  • linux查看磁盘io负载
  • linux怎么格式化硬盘
  • WIN10系统更新文件在哪里
  • 常用dos命令详解
  • Python定时器实例代码
  • nodejs怎么调试
  • canvas实例
  • node爬取数据
  • 湖北省国家税务总局
  • 税务安装步骤
  • 国家税务四川税务总局APP
  • 朝阳区下面分几个区
  • 销售哪些产品需办许可证
  • 税务局打印发票的软件是哪个
  • 银行手续费所得税是否可以税前扣除
  • 物流公司怎么申请TIR
  • 关于切实加强建筑施工领域安全防范工作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设