那些年成node攻城狮的路程(三)

ECMAScript
  • 骨干数据列:Undefined、Null、String、Number、Boolean
    • tyepof ->
      ‘number’、’string’、’boolean’、’object’、’undefined’、 function
      ,特别注意null也会见回来object
    • Undefined类型只出一个价值吗undefined,var声明变量时莫初始化或者调用对象不存在的特性时就为undefined
    • Null类型也仅仅来一个值也null,从逻辑上看是意味着一个对象的空指针

alert(null==undefined) //true
  • Boolean

Boolean(0) //fasle
Boolean('') //false
Boolean(null) //fasle
Boolean(undefined) //fasle
  • Number
    最大值:Number.MAX_VALUE、最小值Number.MIN、超出范围Infinity
    NaN 是一个奇之数值,不与另价值当

alert(NaN ==NaN ) //false

isNaN()会先尝试换为数价值,在认清是否为数值

  • String类型,String()进行字符串转换时,先调用toString()返回,如果值是null返回’null’,undefined返回’undefined’

var value1=null 
var value2=undefined
String(value1)//'null'
String(value2)//'undefined'
  • Object类型,每个object实例都在constructor、hasOwnProperty(‘name’)、toString、valueOf…其余没因此过

var object={name:'lyf',age:22};
object.hasOwnProperty('name')//true
  • 操作符
    • ++自增 ;–自减
    • ~按号非 ,操作数负值减一

var num1 = 25;
var num2 =  -num -1;
console.log(~num1);//-26
console.log(num2);//-26
  • 依照各以及& ; 按个还是| ; 按位异或(相异为1)

  • 荒唐移 << ; 有号子的右变>> ; 无符号的右边变>>>

console.log(2<< 3);//16
console.log(2>> 3);//0
console.log(16>> 3);//2
  • 逻辑与&& 、逻辑或||,都是死操作。

  • +,如果操作数都是字符串则拼接起来;如果内部一个呢字符串则用另外一个变为字符串拼接起来;null和undefined->’null’和’undefined’

  • 等于(先类型转换在比)和全当(直接比较)

console.log(55=='55');//true
console.log(55==='55');//false
console.log(undefined==null)//true
console.log(undefined===null)//true
  • function参数在里面使用一个数组表示(arguments),即便定义之函数接收两独参数,使用时传了3个或1单还好,甚至0只

(function say(){
   console.log(arguments);
})('value1','value2')
//->["value1", "value2"]

都值和参数号称永远保持同步.

(function say(){
   arguments[1]='value3' 
   console.log(arguments);
})('value1','value2')
//-> ["value1", "value3"]

从不重载,后定义的函数会覆盖先定义之函数。