js变量类型和计算/附练习题
变量类型
-
ECMAScript 中定义了 6 种原始类型:
- Boolean
- String
- Number
- Null
- Undefined
-
Symbol(ES6 新定义)
注意:原始类型不包含 Object
值类型
var a = 100
var b = a
a = 200
console.log(b) // 100
上述代码中,a
b
都是值类型,两者分别修改赋值,相互之间没有任何影响
引用类型
var a = {
age:20}
var b = a
b.age = 21
console.log(a.age); //21
上述代码中,a
b
都是引用类型。在执行了b = a
之后,修改b
的属性值,a
的也跟着变化。因为a
和b
都是引用类型,指向了同一个内存地址,即两者引用的是同一个值,因此b
修改属性时,a
的值随之改动。
问题:引用类型VS值类型的区别
- typeof识别出来的类型中,只有object和function是引用类型,其他都是值类型
- 根据 JavaScript 中的变量类型传递方式,又分为值类型和引用类型,值类型变量包括Boolean、String、Number、Undefined、Null,引用类型包括了 Object 类的所有,如 Date、Array、Function 等。
- 在参数传递方式上,值类型是按值传递,引用类型是按共享传递。
问题:JS变量按照存储方式区分为那些类型,并描述其特点
值类型 : 可以分块的存储在内存中
引用类型 : 好几个变量共用一个内存块,值的修改是相互干预的
练习题
function foo(a