都是一些很难注意到的东西,不定时更新。
一、js中的原始值都是不可更改的,包括:undefined、null、布尔值、数字、字符串,而对象是可以更改的。
如下图所示:
此处引申出另外一个小知识点:js和java一样也是一门面向对象的语言,但是字符串并非对象,而是原始数据类型的一种,那么上图中的变量s是如何能调用自己的toUpperCase()方法的呢?其实只要使用了字符串的属性或者调用字符串的方法,JavaScript就会将字符串值通过new String(s)的方式转换成对象,这个对象继承了字符串的方法。
对象是可变的,这一点很好理解,比如对象:
var o = {x:1};//定义一个对象
o.x = 2;//通过修改对象属性值来更改对象
x.y = 3;//给对象增加一个属性
数组也是可以更改的:
var a = [1,2,3];
a[0] = 8;//更改数组的一个元素
a[3] = 9;//给数组添加一个元素