js函数定义的三种方式:
函数声明
function sum(a,b){ return a+b }
函数表达式
var sum = function(a,b){ return a+b }
Function构造函数
var sum = new Function('a','b','return a+b')//不推荐使用,影响函数解析性能
var foo; var x = foo(); foo = function foo(){ }
当执行到x = foo();浏览器会报TypeErro:foo is not a function
注意:函数声明可以提前,但是函数表达式无法提前。
JS基本数据类型:
Undefined, Null, Boolean, Number, String, Symbol
Object属于复杂数据类型
关于This
var color = 'green'p; var test = { color : 'blue', getColor : function(){ var color = 'red'; alert(this.color); } } var getColor = test.getColor; getColor(); test.getColor();
输出结果:green, blue
知识点一:js函数调用时加括号和不加括号的区别.不加括号相当于把函数代码赋给等号左边,加括号是把函数返回值赋给等号左边,
知识点二:js中this的用法,this总是指向调用它的对象,倒数第二行的getColor为windows调用的,倒数第一行的getColor是test4399对象调用的.参考http://www.cnblogs.com/painsOnline/p/5102359.html
call和apply
call和apply的作用相同,但是传入的参数不同,apply传入的是数组
function add(c,d){ return this.a+this.b+c+d; } var o = {a:1,b:2}; add.call(o,3,4);//1+2+3+4 add.apply(o,[3,4]);//1+2+3+4