JS消耗内存,性能比较低。一般能用CSS写HTML5写,不要用JS
变量在栈对象在堆
一、函数就是能执行特殊功能的代码段。函数是否需要参数、返回值,取决于这个函数的功能
注:函数只能有一个返回值。
二、定义函数
function a(){ ....}
三、调用函数、打印函数返回值,
1、基础
a(); //调用函数
cosole.log(a()); // 打印函数返回值。 没有返回值,打印 undefined
2、调用对象,将属性当参数来写:便于触发多个事件
var a = {name:"大仁",eat:"苹果"};
function print(nav){
console.log(a[nav]); // [] 相当于 .
}
print("name");
四、形参、实参
function add(a,b){ //形参
console.log(a + "," + b);
console.log(arguments); // 获取到的是实参的值
return (a+b);
}
add(11,12); //实参
不传参时,
a、b的值为 nudefined
函数的返回值为 NaN
五、函数的作用域
全局变量:在函数外部定义的变量,可以在函数内部使用
局部变量:在函数内部定义的变量,只能在函数内部使用
其中,在函数内部定义的变量,如果不写var,也是全局变量。在外部使用前,需先执行这个函数(不推荐)
如果全局变量与局部变量有冲突,使用局部变量。(作用域近的)
// 内部变量、外部变量冲突(取就近的)
var numC = 20;
function fb(){
var numC = 10;
console.log(numC); //10,就近取
}
fb();//执行fn
console.log(numC); //20,就近取
六、变量申明提前
就相当于 变量申明放到了JS代码最前方(var num1),再赋了值(num1 = 11)
//列一
console.log(num1); // undefined
var num1 = 11;
console.log(num1); // 11
//列二
function fn(){
console.log(num2); //局部变量 undefined
var num2 = 12;
console.log(num2); //局部变量 12
}
fn();
七、命名函数表达式
将一个函数存放在变量里
只能通过变量名去调用函数,不能通过函数名去调用
列::
var fn = function a(){
console.log("123");
}
fn(); // 正常打印 123
a(); // 报错 a is not defined
八、匿名函数、匿名函数自执行
匿名函数:不能直接调用,可以保存在变量里
// 匿名函数
var a = function(){
}
// 匿名函数自执行
(function(){})();
var a = function(){
console.log(123);
return function(){
console.log(456);
}
}
a(); // 123
console.log(a()); // 123 和 返回的这个函数
a()(); // 456
//返回一个函数,再加个(),执行内部函数
九、isNaN 判断一个变量是不是NaN要用isNaN
if(isNaN(num)){
...
}
网友评论