js中与变量相关的一些知识

简介: 来补充一点上一篇文章 js变量初探 中漏掉的知识点
来补充一点上一篇文章 js变量初探 中漏掉的知识点:

1.变量的定义与声明中常见问题:
(1)用var关键字声明的变量,未经初始化时,保存的是一个特殊的值—undefined,变量初始化仅仅是给变量赋一个值
(2)当使用var关键字声明了一个变量时,创建的这个变量是不可配置的,也就是说这个变量无法通过delete运算符删除;在严格模式下,使用delete运算符删除var关键字声明的变量会导致SyntaxError。
(3)省略var关键字会导致定义一个全局变量,但是不推荐这种做法。在严格模式下,给未声明的变量赋值会导致ReferenceError。
(4)变量的声明、定义与初始化
a)声明:给变量一个名字,宣告它从此刻开始存在;
b)定义:给变量分配一个存储空间;
c)初始化:给变量的存储空间赋值。
由于JS是一种动态语言,其变量的类型是不固定的,可以随着保存值的变化而变化,所以其定义变得无关紧要
(5)变量声明提升
JS在执行的时候,会把所有变量的声明都提升到当前作用域的最前面;声明提升,这步操作是在JS引擎“预编译”阶段实现的,是在代码开始运行之前;

2.基本类型与引用类型
(1)对于基本类型值,在复制变量的时候,会在新的变量上创建一个新值,这个新值是原值的一个副本,它们相互独立;基本类型值之间的比较,只是单纯的值的比较
(2)引用类型值是保存在变量中的对象,保存引用类型值的变量,实际上保存的是一个指向该对象的指针;当复制保存着对象的某个变量时,复制的其实是指针;复制操作结束后,两个变量指向同一个对象
(3)对于引用类型值,可以为其添加属性和方法,也可以修改或者删除其属性和方法;在为对象添加属性和方法时,操作的是实际的对象,因此,改变任何一个变量,都会影响另外一个变量。
(4)引用类型值的比较并非值的比较:即使两个对象包含相同的属性和值,它们也是不相等的;各个索引元素完全相等的两个数组也不相等;引用类型值的比较是引用的比较,当且仅当它们引用同一个对象时,它们才相等

3.全局变量:当JS解析器启动时,或者任何Web浏览器加载新页面的时候,它将创建一个新的全局对象,并给他一组定义的初始属性:
(1)全局属性:比如undefined、Infinite、NaN
(2)全局函数:比如isNaN()、parseInt()、eval()
(3)构造函数,比如Date()、String()、Array()、Object()
(4)全局对象:比如Math、Json
初次创建的时候,全局对象定义了JS中所有的预定义全局值;如果代码声明了一个全局变量,这个全局变量就是全局对象的一个属性。

4.名字解析顺序
JS中一个名字可能以4种方式进入作用域,其优先级如下:
(1)语言内置:所有作用域中都有arguments对象和this对象;
(2)函数声明
(3)形式参数
(4)变量声明:不会影响同名的函数声明或者形式参数声明
目录
相关文章
|
4月前
|
JavaScript 前端开发
JavaScript如何判断变量undefined
JavaScript如何判断变量undefined
|
4月前
|
JavaScript 前端开发
JavaScript基础知识-变量的声明提前
关于JavaScript变量声明提前特性的基础知识介绍。
52 0
JavaScript基础知识-变量的声明提前
|
2月前
|
前端开发 JavaScript
如何在 JavaScript 中访问和修改 CSS 变量?
【10月更文挑战第28天】通过以上方法,可以在JavaScript中灵活地访问和修改CSS变量,从而实现根据用户交互、页面状态等动态地改变页面样式,为网页添加更多的交互性和动态效果。在实际应用中,可以根据具体的需求和场景选择合适的方法来操作CSS变量。
|
2月前
|
前端开发 JavaScript 数据处理
CSS 变量的作用域和 JavaScript 变量的作用域有什么不同?
【10月更文挑战第28天】CSS变量和JavaScript变量虽然都有各自的作用域概念,但由于它们所属的语言和应用场景不同,其作用域的定义、范围、覆盖规则以及与其他语言特性的交互方式等方面都存在明显的差异。理解这些差异有助于更好地在Web开发中分别运用它们来实现预期的页面效果和功能逻辑。
|
2月前
|
前端开发 JavaScript UED
如何使用 JavaScript 动态修改 CSS 变量的值?
【10月更文挑战第28天】使用JavaScript动态修改CSS变量的值可以为页面带来更丰富的交互效果和动态样式变化,根据不同的应用场景和需求,可以选择合适的方法来实现CSS变量的动态修改,从而提高页面的灵活性和用户体验。
|
4月前
|
存储 前端开发 JavaScript
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
本文介绍了JavaScript变量的声明和使用、标识符的命名规则、如何获取和操作HTML元素,以及JavaScript的鼠标事件处理,通过示例代码展示了这些基础知识点在实际开发中的应用。
53 2
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
|
3月前
|
JavaScript 前端开发
局部 JavaScript 变量
JavaScript 中,函数内部使用 `var` 声明的变量为局部变量,仅在函数内可见,函数执行完毕后被删除。全局变量则在函数外部声明,整个页面的脚本和函数均可访问,页面关闭后才被删除。未声明的变量赋值会自动成为 `window` 对象的属性,且在非严格模式下可被删除。
|
4月前
|
JavaScript 前端开发
js 变量作用域与解构赋值| 22
js 变量作用域与解构赋值| 22
|
3月前
|
JavaScript 前端开发
什么是JavaScript变量?
什么是JavaScript变量?
44 0
|
4月前
|
存储 JavaScript 前端开发