《Javascript高级程序设计》学习记录(一)

最近又开始重新阅读《javascript高级程序设计》了,记忆中这是第三次了,但是前面都是走马观花式的过了,这次还是需要好好整理和实践一番了。

 

虽然是一些基础概念,但是还是有好多容易注意的地方,不知道它的玄机还有这么多,特在此记录一下,防止自己忘记,同时也能增加自己的理解

(1)javascript中共有5种简单的数据类型:Undefined,Null,Boolean,Number,String,一种复杂的数据类型Object

 

(2)typeof操作符

 在javascript中,typeof和instanceof是两个很值得讲的点,要记住typeof不是函数而仅仅是简单的操作符,其中有两点需要注意:

  1:typeof(null)返回的是Object,因为null被认为是一个空的对象引用 

  2:typeof(function)会返回function

 

(3)对于null和undefined值,它们有很多共同点:

  1:在对它们进行相等操作符的时候:alert(null == undefined)时返回的是true,

  2:Null和Undefined数据类型都只有一个值,分别就是null和undefined

  3:undefined和null在对它们进行Boolean()强制类型转换的时候,返回的都是false

  4:null和undefined都没有toString()函数。

 

 (4)在进行Boolean()强制类型转换的时候,false,"",0,NaN,null,undefined都会转换为false,其他的都会转换为true

 

 (5)Number类型

    1:由于保存浮点数值需要的内存空间是整数数值的两倍,所以js会自动将浮点数转化为整数类型(如果可以的话)

    2:js在进行浮点运算的时候会出现精度过低的bug,导致0.1+0.2之后得到的不是0.3,所以在进行浮点运算的时候要格外小心

    3:一旦某一次运算出现了+Infinity或者-Infinity,那么该值将无法继续擦参与下一次的计算,因为Infinity是不能参与运算的

4:对于NaN来说,任何设计NaN的操作都会返回NaN,NaN和任何值都不相等,包括自身,所以在执行下面的操作的时候,返回的将是false:

Alert(NaN==NaN);

5:Number()可以将任何数据类型转为数值类型,而parseInt和parseFloat只能将字符串转化为数值类型

对于Number来说,

Number(null);返回0   Number(“”)返回0

Number(undefined)返回 NaN

对于parseInt来说,

parseInt(“”); 返回NaN

parseInt可以转化8进制和16进制的值,但是在ECMAScript5中,parseInt没有转化8进制的能力了

对于parseFloat来说,它只能解析十进制的数值,所以他没有用第二参数指定基数的用法

(6)逻辑与和逻辑或操作

 与:1:当第一个操作数是对象,则返回第二个操作数

     2:当两个操作数都是对象的时候,则返回第二个操作数

     3:如果有一个NaN操作数,则返回null,

     4:如果有一个操作数是undefined,则返回的是undefined

则执行下面的操作的时候,返回的是2

Alert(1.&&2);

或:1:当第一个操作数是对象的时候,返回的是第一个操作数

2:当两个操作数都是对象的时候,返回的是第一个操作数

    3:如果有一个NaN操作数,则返回null,

4:如果有一个操作数是undefined,则返回的是undefined

则执行下面的操作的时候,返回的是1

Alert(1||2);

 

(7)加减乘除运算符

  乘:1:Infinity和0相乘的时候,结果为NaN

      2:Infinity和非0数值相乘,返回的是Infinity

除:  1:如果是零被零除,结果是NaN  

      2:Infinity被Infinity除,结果是NaN

加: 1:Infinity和-Infinity相加,结果为NaN 

     2:+0和-0相加,结果为+0

     

减 1:-Infinity和Infinity相减,结果为NaN

(8)在一个函数中,位于return语句之后的任何代码都永远不会执行

(9)Js中没有函数的重载,即使两个函数定义为相同,后面的那一个永远会覆盖前面的那一个

 

 

 

 

 



转载于:https://my.oschina.net/sunshinewyf/blog/529224

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值