标签:class   类型   提升   struct   ret   define   min   兼容性   tca   
 
js基础语法
    Netcape   
    js基础语法规范(ECMAScript1,2,3,3.1,5(IE9),6   ES    ES6=es2015) DOM BOM  
        BOM :是由浏览器厂商各自实现的,所以差异比较大
        DOM:相关的规范  是由W3C维护的
    Node的优势  没有浏览器的兼容性问题
    前端项目尽量不要使用ES6,需要考虑兼容性问题
--------------------------------数据类型---------------------------
1.数据类型分类:
            基本数据类型:number   string   boolean      undefined    null
            复杂数据类型:对象(数组,函数,日期)
 
undefined:数据未定义的一种状态
2.typeof 返回的数据类型
可以返回这六种数据类型:number  string  boolean  function  undefined  object
日期,数组,正则都是object类型
可以使用typeof来检测前5中的数据类型 ‘
注意返回的是字符串   小写
console.log(typeof  alert());//function  使用typeof检测函数 返回的是function
 
3.逻辑运算符
&&  :   左边为真的话,返回右边;左边为假的话,返回左边      (如果左边为真,需要计算右边所以会返回右边的结果)
||  :左边为真的话,返回左边;左边为假的话  返回右边   (如果左边为真,就不需要再计算右边了,所以会直接返回左边的值)
console.log(undefined  &&  10);//undefined
console.log(0 || 3);//3  
 
真假值:
假值:  空字符串""   数值0   false     null(声明的变量赋值了但是赋值的是空值)   undefined(变量声明了但是没有定义)    NaN(不是一个数字,NaN本身是number类型的)  
 
4.获取对象未定义的属性的话返回的是undefined不是  is not defined
var  obj = {name:‘‘xiaoming"};
console.log(obj.age);//undefined
5.值类型  引用类型
值类型:数字 字符串  boolean  null  undefined
引用类型:对象
 
5.  instanceof
var  result = obj  instanceof   XXX;
返回值是一个boolean类型
检测obj是否是XXX类的一个实例
var obj ={}; 
console.log(obj instanceof Object); 
var arr =[1,2,3,4]; 
console.log(arr instanceof Array); 
 
    
constructor属性:保存了对构造特定对象实例的函数的引用
console.log(arr.constructor==Array);//true 
console.log(obj.constructor==Object);//true 
console.log(num.constructor==Number);//true 
 
 
 
代码调试   异常捕获
面向对象基础复习
构造函数和原型
 
变量声明提升(词法作用域 原理性的介绍)
作用域:全局作用域     局部作用域(写一个函数就产生了一个局部作用域)
 
 
function bar(){ 
function foo(){} 
        foo =10;//2.给变量foo赋值 10  foo变为了一个number类型 
//      function foo() {}//1.函数声明   提升到当前作用域的顶端 
return foo;//3.将number类型的的foo返回 
} 
//    console.log(foo); 
    console.log(typeof bar()); 
 
 
 
function fun(a, b){ 
for(var i =0; i < arguments.length; i++){ 
        console.log(arguments[i]);//分别打印的函数的参数 
} 
return a + b; 
} 
console.log(fun(3));//NaN  3+undefined  得到是一个NaN 
 
var foo =function bar(name){ 
    console.log("hello"+ name); 
}; 
foo("world"); 
//bar();//无法打印 bar  is not  defined 
/*在函数内部,bar可以被访问,此时的bar就相当于foo,相当于函数本身*/ 
//只能通过打印foo.toString()从而找到bar 
console.log(foo()== bar()); 
console.log(foo.toString());//打印的是function bar(name)  函数体 
 
 
 
 
JS基础复习
标签:class   类型   提升   struct   ret   define   min   兼容性   tca   
原文地址:http://www.cnblogs.com/itlyh/p/6012147.html