位置: 编程技术 - 正文

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

  • 收到以前年度退回的所得税
  • 交通费中的高速费怎么算
  • 小企业汇算清缴所得税会计分录
  • 递延收益税务处理方法
  • 法定盈余公积金的提取比例一般按照()
  • 增值税逾期未申报的税务怎么处理
  • 企业收到票据背书转让给其他公司怎么做会计处理?
  • 公允价值变动损益属于当期损益吗
  • 以土地,房屋用地为主
  • 资金清算款项
  • 商场现金收入如何计算
  • 行政单位结转结余形成的原因
  • 药店销售小票要保存多久
  • 可引导的macos
  • 举办活动购买的东西会计分录
  • php string
  • 财务工作中如何用进销存软件
  • php获取ftp文件目录
  • PHP:pg_result_error_field()的用法_PostgreSQL函数
  • 玉兰种院子什么方位
  • 资产负债表包括什么科目
  • 午夜太阳的意思
  • php中\n
  • 解决前端跨域问题
  • 其他综合收益需要写二级科目吗
  • php取mysql查询单条数据
  • 企业所得税月月交吗
  • 交通费比例
  • 资产减值损失属于营业外支出吗
  • 资产负债表上应付账款根据什么填制
  • rabbitmq中文手册
  • 古腾堡中文官网
  • 应收货款计入什么科目
  • dede织梦怎么转成zblog
  • 报销人和收款人不一致钱打到哪个账户
  • 个体户税务分几种
  • 非应税项目是有哪些项目
  • 公司注销章子要盖章吗
  • db2 describe
  • db2with
  • 小规模纳税人注册流程
  • 确认营业收入的时间是什么简答题
  • 贸易公司委托加工费怎么入账
  • 单位或个体经营者
  • 帐务处理是指什么工作
  • 母公司和子公司是什么关系
  • 购买车辆的进项税怎么勾选
  • 租入的房子再出租用交房产税吗?
  • 为什么白条不能打白条
  • 发票金额与付款金额不一致情况说明
  • 初次购买税控盘480都能抵扣吗
  • 公司车辆保养计入什么费用
  • 电影院分成比例
  • 股权转让溢价
  • 小规模纳税人的增值税计入成本吗
  • 费用误计入固定资产
  • 销项税大于进项税后,税金如何算
  • 医院药品过期放多久
  • windows8crazy error
  • 自己动手在家就可以自己理发视频
  • 安装fedora33
  • 虚拟机vmx
  • Windows Server AD 访问数量控制配置方法
  • xp系统怎么打开启动项
  • centos编译环境
  • Win10 Mobile 10586无法更新应用怎么办 一招教你解决
  • pavprsrv.exe - pavprsrv是什么进程 有什么用
  • win8怎么设置
  • windows8介绍
  • shell 字符串trim
  • js显示时间并且之后秒数实时更新
  • js上传文件到后端
  • jquery trigger实现联动的方法
  • jquery设置边框
  • viewpager自动滑动
  • 怎样查税务师事务所信息
  • 2023年新乡契税补贴政策
  • 铁路检察院和普检哪个好
  • 土地增值税如何入账
  • 税务干部工作纪实怎么写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设