JS基础知识

一、变量

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); //0  遇false返回
  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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值