位置: 编程技术 - 正文

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

  • 分公司和总公司不在一个区
  • 进口货物的会计科目
  • 开了发票不做收入的账务处理
  • 应付账款不需要付怎样做会计分录
  • 企业员工的高铁票进项税如何申报
  • 小规模纳税人综合税负
  • 金税设备中有上税吗
  • 个人可支配收入缩写
  • 企业固定资产没提折旧怎么办
  • 债务重组是什么意思?
  • 购买原材料的费用
  • 材料入库时实收什么意思
  • 全资子公司向母公司划转资产 土地增值税
  • 接受固定资产投资的企业,应该按照投资合同
  • 跨月增值税专票退回涉及哪些税费
  • 红字发票可用于入账吗
  • 红字增值税专用发票信息表能作废吗
  • 稽查查补的税款可以享受即征即退吗
  • 土地增值税进项税
  • 简单介绍linux
  • 怎么远程重装win10
  • 未分配利润怎么处理
  • cpu主频在哪看
  • php数组函数题目
  • php oci
  • windows无法自动检测网络代理设置该怎么办
  • 会计分录的书写规范
  • 图书发行流程
  • 大自然水族馆怎么样
  • vue中的组件有几类
  • 资产减值会计处理论文
  • phpstudy目录
  • 国内旅客运输服务发票
  • 猿创部落是干什么的
  • GPT-4:关于下一代人工智能模型的事实、谣言和期望
  • ipcrm命令
  • 《中华人民共和国民法典》
  • 借款利息收入开票
  • 小微企业能申请留抵退税吗?
  • 未抵扣增值税需结转吗
  • 资本公积的项目有哪些
  • 无追保理是投资还是投资
  • 车补贴是要缴纳增值税吗
  • mysql 执行过程
  • 免征增值税政策的政策有哪些?
  • 个人独资公司对外如何承担责任
  • 暂估管理费用跨年账务处理
  • 会计税法的差异
  • 双分录怎么做记账凭证
  • 可供出售金融资产新准则叫什么
  • 股权转让的会计处理怎么做
  • 建筑企业成本核算方法
  • 私企公转私出纳有责任吗
  • mysql数据源
  • 什么是分表分库
  • 如何设置linux
  • winxp和win7之间的系统
  • 升级到xp系统以后怎么办
  • ubuntu浏览网页
  • winproj.exe - winproj进程是什么意思
  • centos6 grub
  • win7旗舰版如何升级到win10
  • css教程实例
  • js基于对象的特点是什么
  • jquery 动态加载js
  • cocos2dx3.3 便条提示语功能简单实现
  • QOpenGLWindow 、QOpenGLWidget 和 QPainter混合渲染方法初探
  • jqueryvalidate验证
  • easyui选项卡
  • android的
  • shell监控进程
  • css下margin、padding、border、background和font缩写示例
  • 微信小程序开发用什么语言
  • php与nodejs
  • bootstrap和thymeleaf
  • js中的
  • javascript的理解
  • 税务机关落实六保六稳
  • 出口退税出现预缴怎么办
  • 报考地税局的要求是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设