《javascript高级程序设计》读书笔记(二)javascript基本概念

第三章:基本概念

ECMAScript中有5种简单数据类型(也称基本数据类型):Undefined\Null\Boolean\Number\String,还有一种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。

typeof是一个操作符而不是函数.

Undefined类型:此类型只有一个值,undefined.在使用var声明变量但未对其初始化时,这个变量的值就是undefined.

var message

var message2 = undefined;

alert(message);                   //  ”undefined”

alert(message == undefined);       //  true

alert(typeof message);            //  ”undefined”

alert(message == undefined);       //  true

alert(age);                     //   产生错误

alert(typeof age);               //  ”undefined”

 

Null类型:此类型只有一个值,null.表示一个空对象指针。

var car = null;    

alerttypeof car;        //     ”object”

if(car != null){

   //car对象执行操作

}

undefined值是派生自null值的。

alert(null == undefined);      //true

只要意在保存对象的变量还没有真正保存对象,就应该明确地让该对象保存null值。

Number类型:

  八进制的第一位是0,十六进制的前两位是0x.

  科学计数法:e

ECMAScript所能表示的最小和最大的值分别是:Number.MIN_VALUENumber.MAX_VALUE,超出范围,会被成Infinity值(即Number.POSITIVE_INFINITY)或者-Infinity(即Number.NEGATIVE_INFINITY.

NaNNot a Number

1. 任何涉及到NaNde 操作都会返回NaN.

2. NaN与任何值都不相等,包括NaN本身

 alert NaN == NaN ;    //  false

 IsNaN()在接受到一个值之后,会尝试将这个值转换为数值。

alert(isNaN(NaN));              //true

alert(isNaN(10));              //false

alert(isNaN(“10”));              //false

alert(isNaN(“blue”));              //true

alert(isNaN(true));              //false(可以被转换成1)

isNaN也适用于对象,会先调用对象的valueOf()方法,如果不能转换为数值,再基于返回值调用toString()方法。

数值转换:

可以将非数值转换成数值的函数:

1. Number()   用于任何数据类型,不解析八进制

var str ;

var str2 = null;

var str3 = “hello world”;

Number(str);        //NaN

Number(str2);       //0

Number(str3);       //NaN

Number(“”);        //0

Number(“000011”);  //11

Number(true);      //1

Number(“0xA”);     //10

一元加操作符的操作与Number()相同。

2. parseInt()  用于字符串类型(忽略前面的空格),可解析八进制

parseInt(“   1234blue”);         // 1234

parseInt(“”);                   // NaN

parseInt(“0xa”);                // 10

parseInt(22.5);                 //22

parseInt(“70”,8);               //56  (指定基数,即8进制)

parseInt(“10”,2);             // 2

3. parseFloat()  用于字符串类型(忽略前面的空格),只解析10进制

parseFloat(“1234blue”);                //1234

parseFloat(“0xA”);                    //0

parseFloat(“22.34.5”);                 //22.34

parseFloat(“0908.5”);                 //908.5

parseFloat(“3.125e7”);                //31250000

String类型:可以用双引号,也可以用单引号表示。

 除了nullundefined值没有toString(),其他都有。但是nullundefined可以调用String(),返回相应的字符串。即null值返回“null”,undefined值返回“undefined”

 toString()可以传入基数参数,表示输出的进制表示,如:

  var num = 10;

  number.toString(2);   // “1010”

  要把某个值转换为字符串,可以使用加号操作符把它与一个空字符串(””)加在一起。

with语句:

 with语句的作用是将代码的作用域设置到一个特定对象中。目的是简化多次编写同一个对象的工作。例子见···

但是大量使用with语句会导致性能下降,同时也会给调试代码造成困难,因此在开发大型应用程序时,不建议使用with语句。

switch语句:

switch语句在比较值时使用的是全等操作符,因此不会发生类型转换(例如,字符串“10”不等于数值10.

函数的返回值:

 除了return语句外,没有任何声明表示该函数返回一个值。另外,return语句也可以不带任何返回值,此时,函数在停止执行后将返回undefined

ECMAScript的函数参数:重点

命名的参数只提供便利,但不是必须的。解析器不会验证命名参数。

ECMAScript中的参数在内部是一个数组来表示的,可以通过arguments对象来访问这个参数数组,从而访问每一个参数。

修改arguments对象中的值会自动反映到对应的命名参数,但是修改命名参数不会改变arguments对应的值。没有传递值得命名参数将自动被赋予undefined值。

ECMAScript中的所有参数传递的都是值,不可能通过引用传递参数。

ECMAScript函数不能重载,能够重写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值