javascript高级开发学习笔记三

一、数据类型

1、ECMAScript中有5种简单数据类型:Undefined、Null、Boolean、Number、String和一种复杂数据类型Object(本质上是由一组无序的名值对组成的)。ECMAScript数据类型具有动态性。

1.1.  typeof(typeof是操作数不是函数):typeof用来检测给定变量的数据类型。使用typeof操作符返回以下字符串:undefined(值未定义)、boolean(值为布尔值)、string(值为字符串)、number(值为数字)、object(值为对象或null)、function(值为函数)。

1.2. Undefined:在使用var声明变量但未初始化时,该变量的值为undefined。

1.3. Null类型:null值表示一个空对象指针。如果定义变量准备将来用于保存对象,那么最好将该变量初始化为null而不是其它值。

  undefined值是派生自null值的,因此  alert(null == undefined);  //true

注:没有必要把一个变量的值显示的设置为undefined,只要意在将某变量保存为对象,该变量就应该显示的设置为null。

1.4. Boolean:ECMAScript中所有类型的值都有与两个Boolean值(true、false)等价的值。要将一个值转换成其对应的Boolean值,可以调用转型函数Boolean()。

流控制语句自动执行相应的Boolean转换。


数据类型转换为true的值转换为false的值
Booleantruefalse
String任何非空字符串""空字符串
Number任何非0数字值(包括无穷大)0和NaN
Object任何对象null
Undefinedn/a(N/A)  not applicationundefined

1.5. Number
1.5.1:NaN,即非数值(Not a Number)是一个特殊的数值,表示一个本来返回数值的操作数未返回数值的情况。
1.5.2:任何涉及NaN的操作(例 NaN/10)都会返回NaN,NaN于任何值都不相等,包括NaN本身。
        1.5.3:isNaN():ECMAScript定义了isNaN()函数。接受一个参数,参数可以是任何类型,函数判断该参数是否“不是数值”。任何不能被转换为数值的值都会导致这个函数 返回true。boolean的值true和false可以转换成1和0。
1.5.4:3个函数可以把非数值转换成数值:Number()、parseInt()和parseFloat()。
1.6. String
ECMAScript中的字符串是不可变的,也就是说字符串一旦创建,它的值不可修改。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用一个包含新值的字符串填充该变量。
1.7. Object
1.7.1:ECMAScript中的对象其实就是一组数据和功能和组合。在ECMAScript中Object类型是所有它的实例的基础。

二、函数
参数理解——ECMAScript函数的参数与大多数其他语言中的函数有所不同。ECMAScript函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型。ECMAScript中的参数在内部是用一个数组来表示的。函数接收到始终是个数组,而不关心数组中包含哪些参数。函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。

三、变量
1.ECMAScript变量可能包含两种不同类型的值:基本类型值和引用类型值。基本类型值指的是简单的数据段,引用类型值指可能由多个值构成的对象。5种基本类型Undefined、Null、Boolean、Number、String是按值访问的,可以操作保存在变量中的实际的值。引用类型的值是保存在内存中的对象。javascript不允许直接访问内存中的位置,也就是说不能直接访问对象的内存空间。在操作对象时,实际上操作的对象的引用,而不是实际的对象。引用类型的值是按引用访问的。
2.从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到新变量分配的位置上。
   从一个变量向另一个变量复制引用类型的值 ,同样也会将存储在变量对象中的值复制一份到为新变量分配的空间中。不同是,这个值实际上是一个指针,而这个指针指向存储在堆中的一个对象。复制完成后,两个变量实际将引用同一个对象。
3.参数传递:ECMAScript中所有函数的参数都是按值传递的。传递方式如2中变量复制相同。
4.垃圾收集:标记清除、引用计数、

基本类型的值保存到栈中、引用类型的值是对象保存到堆内存中


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值