码迷,mamicode.com
首页 > 编程语言 > 详细

javascript权威指南-数据类型笔记

时间:2015-05-26 13:58:41      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

 原始值与应用值

1.原始值类型数据室不可变的 (改变原始值类型数据, 返回的是一个新的对象)

var str0 = ‘test‘;

var str1 = str.replace(‘t‘, ‘a‘);

alert(str1);   // 输出 ‘aest‘

alert(str0);   // 输出 ‘test‘

2.应用值类型是可变的(他的值是可以修改的)

// 对象直接量
var o = {x:1, y:2, z:3};
console.log(o);     // 输出 Object { x=1,  y=2,  z=3}
o.z = 4;
console.log(o);     // 输出 Object { x=1,  y=2,  z=4}

// 数组直接量
var arr = [1, 2, 3];
console.log(arr)     // 输出 [1,2,3]
arr[2] = 4;
console.log(arr)     // 输出[1, 2,4]

几个知识点

1.javascript是ECMAscript的实现,其组成部分有:

技术分享

2. 原始类型与引用类型(以下是w3school的解释很清晰)

  原始值: 存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。

  引用值: 存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存处。

  技术分享

  (*在许多语言中,字符串都被看作引用类型,而非原始类型,因为字符串的长度是可变的。ECMAScript 打破了这一传统。)

3.javascript变量声明及作用域  

  1).js中变量声明有如下几种(分为 使用关键字var , 不使用关键字var)

//------------------------------------------//
// 分别用var声明 var a; var b; a = ‘hello‘; b = ‘world‘; // 单var声明 var a, b; // 单var 声明并赋值 var a = 1, b = 2, c; //------------------------------------------// // 不使用var声明 g = ‘test‘; // 需要注意的是这种不用var声明变量 直接赋值的方式, 在任何地方使用都会被视作全局对象的属性, 可以使用delete删除, 但是不推荐这种用法(EC5严格模式下报错)

  2).js中变量的作用域分为全局作用域()和局部作用域(由函数function构成)俩种

  技术分享

  (** js引擎执行时, 每进入一个作用域(环境), 会根据当前上下文, 创建一个针对该环境的上下文对象,在这个阶段,variableObject对象,作用域链,以及this所指向的对象都会被确定推荐阅读)

4. 对象的比较,即使俩个对象包含同样的属性及同样的值, 他们也是不相等的( 各个索引完全相等的两个数组也不相等)

 对象的比较是引用的比较,当且仅当他们引用同一个对象时, 它们才相等

 (这个好比现实中 有姓名相同和年龄相同但是不是同一个人, 但是如果这个人还有个小名(其它引用)那么这个小名和他的大名就都指他一个人了)

var o1 = {name:‘zhang‘, age:23};
console.log(o1);          // 输出Object { x=1,  y=1}

var o2 = {name:‘zhang‘, age:23};
console.log(o1);          // 输出Object { x=1,  y=1}

console.log( o1 === o2 );     // 输出false

var o3 = o1;
console.log(o3);          // 输出Object { x=1,  y=1}

console.log( o3 === o1 );     // 输出true

 

javascript权威指南-数据类型笔记

标签:

原文地址:http://www.cnblogs.com/xiaoyuzhou/p/4530264.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!