Javascript-复习总结1

Javascript的组成


主要由ECMA(标准)、BOM(窗口对象模型)、DOM(文档对象模型)3部分组成。

基本概念


基本类型:
undefined、object、string、number、boolean

类型判断:
typeof variable

for-in语句

for(var property_name in obj){
   console.log(obj[proprety_name]);
}

变量作用域和内存问题


引用类型的复制
引用类型:就是包含了多个值的那种。
引用类型复制和赋值时,其实跟C语言中的指针一样,真正的对象在堆内存当中。变量保存的都是对那个对象的地址引用。

判断对象类型
有时不光想知道是否Object类型,关键还想知道确切的引用类型。
可以用instanceof if(x1 instanceof People)

作用域
有个坑一定要注意,js中没有块级作用域。
每段代码执行的时候都会有他的作用域环境,作用域环境是用来保证执行代码可以有次序(方向往上)的访问和控制变量的一种设计。
作用域链:

var color = "red";

function x1(){
   var color="blue";
   alert(color);
}

function x2(){
   alert(color);
}
/*画张图更好
-----------全局作用域
--------color
--------x1()作用域
------------color
--------x2()作用域
------------全局作用域
*/

回收内存
标记清除:这是浏览器常用的一种方法。
第一次会给所有变量这些打上标记,
第二次会给那些进入了环境和那些被引用的对象去掉标记,
第三次释放那些打上了标记的变量(隔时执行)。

良好的习惯:给不用了的引用类型变量,设为null。这样下次他就会把对象给回收。

引用类型


Function类型
函数也是一种对象!!!

函数的一些属性:
arguments:类似数组,接受了函数的实参。可用数组方式访问。
arguments.calle:代表函数本身。
this和caller:都是代表函数的执行对象
length:形参的长度。

函数的一些方法:
apply()方法:

var name = 'trump';

function callSayHi(name){
  sayHi.apply(this,[name]);
}

function sayHi(){
  alert(this.name);
}

sayHi.apply(this); //alert trump
callSayHi('kk');     //alert kk

apply和call就是接受参数不同而已

Array()
创建形式:

  1. var arr = new Array();
  2. var arr = new Array(20);
  3. var arr = Array();
  4. var arr = Array(20);
  5. var arr = [1,'str',false];

判断是否数组:
Array.isArray(x1);

length属性:
可读取可修改,你懂得。

你可能感兴趣的:(Javascript-复习总结1)