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)变量声明:不会影响同名的函数声明或者形式参数声明
目录
相关文章
|
16天前
|
JavaScript
变量和函数提升(js的问题)
变量和函数提升(js的问题)
|
18天前
|
JavaScript 前端开发
JavaScript 中如何检测一个变量是一个 String 类型?
JavaScript 中如何检测一个变量是一个 String 类型?
21 2
|
3月前
|
JavaScript 前端开发 Java
JavaScript基础语法(变量)
JavaScript基础语法(变量)
48 0
|
4月前
|
JavaScript 前端开发
JavaScript变量、数据类型、运算符及类型转换
JavaScript变量、数据类型、运算符及类型转换
40 0
|
1月前
|
JavaScript 前端开发 容器
javascript中的变量定义
javascript中的变量定义
|
1月前
|
存储 JavaScript 前端开发
编程笔记 html5&css&js 075 Javascript 常量和变量
编程笔记 html5&css&js 075 Javascript 常量和变量
|
2月前
|
XML 存储 JavaScript
深入理解JS语法与变量
深入理解JS语法与变量
44 1
|
3月前
|
JavaScript 前端开发 C++
给初学者的JavaScript入门指南及通俗的JS变量解释
给初学者的JavaScript入门指南及通俗的JS变量解释
129 0
|
3月前
|
自然语言处理 JavaScript 前端开发
JavaScript:作用域&变量回收
JavaScript:作用域&变量回收
32 1
|
3月前
|
存储 JavaScript 前端开发
【JavaScript保姆级教程】输出函数和初识变量
【JavaScript保姆级教程】输出函数和初识变量