网站制作需求文档,长春百度推广哪家好,重庆做网站个人,标准型网站建设最近有点忙#xff0c;好长时间没抄经了#xff0c;今天继续#xff0c;之前语言基础相对简单#xff0c;跳过一部分操作符。
变量
js 的变量是特殊的松散类型#xff0c;由于没有规则定义变量必须包含什么数据类型#xff0c;变量的值和数据类型在脚本生命期内可以改变…最近有点忙好长时间没抄经了今天继续之前语言基础相对简单跳过一部分操作符。
变量
js 的变量是特殊的松散类型由于没有规则定义变量必须包含什么数据类型变量的值和数据类型在脚本生命期内可以改变。
原始值和引用值。 原始值primitive value就是最简单的数据。 引用值reference value则是由多个值构成的对象。
之前学过的6 种原始值Undefined、Null、Boolean、Number、String 和 Symbol。保存原始值的变量是按值by value访问的因为我们操作的就是存储在变量中的实际值。
引用值是保存在内存中的对象。与其他语言不同JavaScript 不允许直接访问内存位置因此也就不能直接操作对象所在的内存空间。在操作对象时实际上操作的是对该对象的引用reference而非实际的对象本身。为此保存引用值的变量是按引用by reference访问的。 注意 在很多语言中字符串是使用对象表示的因此被认为是引用类型。ECMAScript 打破了这个惯例。 动态属性 原始值使用字面量初始化的则不能动态添加属性的
var t zhangsan
t.age 18
console.log(t.age) //undefined但如果是使用new 关键字创建的Object类型的实例 则可以添加动态属性因为已经是Object
var abc new String(zhangsan)
abc.age 18
console.log(abc.age) // 18复制值 一个原始值赋值到另一个原始值时两个变量的内存存储时完全独立的这个很好理解因为上面讲了原始值就是内存直接存储的值
var a 1;
var b a
a 3
console.log(b) //1而引用类型再赋值过程中实际只是复制了内存的指针
var a {name:zhangsan}
var b a
a.name lisi
console.log(b) //{name: lisi}传递参数 和内存复制一样原始值完全独立引用类型指向同一块内存修改后指向引用的变量都会变化
确定类型 typeof 操作符最适合用来判断一个变量是否为原始类之前再语言基础中由示例此处不再重复。 ypeof 虽然对原始值很有用但它对引用值的用处不大。我们通常不关心一个值是不是对象 而是想知道它是什么类型的对象。为了解决这个问题ECMAScript 提供了 instanceof 操作符语 法如下
var a {name:zhangsan}
a instanceof Object //true
var b 123
b instanceof Object //false按照定义所有引用值都是 Object 的实例因此通过 instanceof 操作符检测任何引用值和 Object 构造函数都会返回 true。类似地如果用 instanceof 检测原始值则始终会返回 false 因为原始值不是对象。
下篇继续抄 较为重要的 执行上下文
今天我家二娃也一年级了找了篇关于放学开心的诗读读 《村居》 清代·高鼎 草长莺飞二月天 拂堤杨柳醉春烟。 儿童散学归来早 忙趁东风放纸鸢。