JS基础知识

来源:互联网 发布:淘宝上whoo后小样真假 编辑:程序博客网 时间:2024/06/09 16:44

一、变量

1、变量类型

值类型:number,string,null,boolean,undefined
引用类型:object,function,array
从内存分析,值类型把每一个值都存储在变量相应的位置,把数值分块存在内存中,变量赋值后不会相互影响,引用类型变量相当于一个指针,好几个变量共用一个内存块,变量赋值会相当于修改指针指向,所有指向该值的变量均改变

  //值类型  var a=100;  var b=a;  a=200;  console.log(b);//100  //引用类型  var c={age:23};  var d=c;  d.age=21;  console.log(c.age);//21

typeof运算符只能区分值类型的具体类型

    console.log(typeof x);    // undefined    console.log(typeof 10);   // number    console.log(typeof 'abc'); // string    console.log(typeof true);  // boolean    console.log(typeof null);  //object    console.log(typeof function () {});  //function    console.log(typeof [1, 'a', true]);  //object    console.log(typeof { a: 10, b: 20 });  //object    console.log(typeof NaN);//number    console.log(typeof new Number(10));  //object

2、变量计算—–强制类型转换

  //字符串拼接  var a=100+10;  var b=100+'10';  console.log(a);//110  console.log(b);//'10010'  //==  console.log(100=='100');//true   100转化为字符串'100'  console.log(0=='');//true    都转化为false  console.log(null==undefined);//true  都转化为false  //if  var c=true;  if(c){      //...;  }  var d=100;  if(d){  //100转化为布尔值true      //...;  }  var e='';  if(e){  //''转化为布尔值false      //...;  }  //逻辑运算  console.log(10&&0); //0false返回  console.log(''||'abc');//abc  遇true返回  console.log(!window.abc);//true  window.abc是undefined  转化为false  //判断一个变量被当成true还是false  var f=100;  console.log(!!f);//true

二、双等和三等

1、双等==:先转换两个操作数再判断,相等返回true,不相等返回false

  console.log(null==undefined);//true  console.log('NaN'==NaN);//false  console.log(5==NaN);//false  console.log(NaN==NaN);//false  console.log(false==0);//true  console.log(true==1);//true  console.log(undefined==0);//false  console.log(null==0);//false  console.log('5'==5);//true

转化规则:
有一个操作数是布尔值时比较前将其转化为数值
字符串与数值比较将字符串转化为数值
一个操作数是对象一个不是。调用对象valueOf()方法转化为基本类型值
null和undefined比较规则: 比较相等性之前不能将其转化成任何值
有一个操作数是NaN返回false,NaN==NaN返回false
两个操作数都是对象则比较它们是不是同一个对象

2、三等===:操作数必须是相同类型才可比较

  console.log(null===undefined);//false

3、使用情况:

  if(obj.a==null){        //相当于obj.a===null||obj.a===undefined的简写   JQ源码的写法      //....  }

三、内置函数—数据封装类对象

1、boolean,number,string,object,array,function,date,RegExp,error
2、单体内置对象:global对象,math对象

四、理解json

json就是一个内置js对象
常用API
1、把对象变成字符串

JSON.stringify({a:10,b:20})  //{"a":10,"b":20}

2、把字符串变成对象

JSON.parse('{"a":10,"b":20}')  //Object
原创粉丝点击