JavaScript重新学习、捡漏 (2)
- 数组的长度
arr.length
- 新增数组元素
arr[arr.length] = "number"; //如果索引已存在则是替换
- 内置函数获取函数参数
function fn(){
console.log(arguments); //是一个伪数组:
}
/*
伪数组的定义:
①有数组的length属性
②按照索引的方式进行存储
③没有数组的一些真正的方法:pop()、push()等
*/
- 函数声明的两种方式
//①命名函数
function fn(){
}
//②匿名函数
var fun = function(){};
- 关于全局变量
①在全局声明赋值的变量
②在函数内部未声明直接赋值使用的变量
- 代码的预解析
①变量预备解析:变量提升不提升赋值
function fn(){
console.log(num); //会输出undefined
}
fn();
var num = 10;
/*以上代码相当于运行
var num;
function fn(){
console.log(num);
}
fn();
num = 10;
*/
②函数提升:把函数声明提升在前边,不提升调用
- 面试题:变量、函数提升:
f1();
console.log(c);
console.log(b);
console.log(a);
function f1(){
var a = b = c = 9;
console.log(a);
console.log(b);
console.log(c);
}
-------------------------------------
//变量提升后:
function f1(){
var a = b = c = 9; //这句表达式相当于:var a = 9; b = 9; c = 9; b和c为全局变量--看上述 -5-
console.log(a);
console.log(b);
console.log(c);
}
f1();
console.log(c);
console.log(b);
console.log(a);
//答案:9 9 9 9 9 9 报错
----