变量

1、typeof + 变量名
2、prompt 取到的内容是 string 类型的
3、转换字符串型
变量名.tostring()
变量名+’‘ (推荐)
4、转换数字型
parselnt(string),能把字符串取整输出,会去掉 px 单位
parseFloat(string)
string-0 运算符起转换效果(+-*/)

运算符

1、== 默认转换数据类型
2、逻辑与短路运算
如果表达式 1 为真 则返回表达式 2
如果表达式 1 为假 则返回表达式 1
3、逻辑或短路运算
如果表达式 1 为真 则返回表达式 1
如果表达式 1 为假 则返回表达式 2

函数

1、arguments 函数内部的一个属性,是一个存放所有实参的数组
2、匿名函数定义: var fn = function(){} fn 是变量名不是函数名

作用域

1、定义全局变量,特殊情况:在函数内部没有声明直接赋值的变量也属于全局变量
2、作用域链:内部函数访问外部函数的变量,采取链式访问,就近原则

预解析

1、变量(函数)提升到当前作用域的最前端
2、面试题

1
2
3
4
5
6
7
8
9
10
11
f1();
console.log(c);
console.log(b);
console.log(a);
function f1() {
var a = b = c = 9;
//var a = 9;b=9;c=9
console.log(a);
console.log(b);
console.log(c);
}

内置对象

1、构造函数语法:

1
2
3
4
5
function 构造函数名(值,) {
this.属性 = 值;
this.方法 = function(形参) {}
}//定义
new 构造函数名();//调用

2、遍历对象

1
2
3
4
for(var k in obj) {
console.log(k);//属性名
console.log(obj[k]);//属性值
}

3、var date = new Date(‘20222-7-2 8:8:8’);
4、var date1 = +new Date(); // 返回距离 1970.1.1 的总毫秒数
H5 语法:Date.now()
案例:倒计时

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        function countDown(time) {
var now = +new Date();
var input = +new Date(time);
var t = (input - now) / 1000;
var day = parseInt(t / 60 / 60 / 24);
day = day == 0 ? '0' + day : day;
var hour = parseInt(t / 60 / 60 % 24);
hour = hour == 0 ? '0' + hour : hour;
var min = parseInt(t / 60 % 60);
min = min == 0 ? '0' + min : min;
var sec = parseInt(t % 60);
sec = sec == 0 ? '0' + sec : sec;
var res = day + '天:' + hour + '小时:' + min + '分钟:' + sec+'秒';
return res;
}
console.log(countDown('2022-7-2 18:0:0'));
数组对象

5、arr instanceof Array 运算符 检测是否为数组
H5 语法:Array.isArray(arr)
6、arr.push() 尾部添加,返回长度
arr.unshift() 头部添加,返回长度
arr.pop() 尾部删除,返回删除元素
arr.shift() 头部删除,返回删除元素
7、arr.sort()

1
2
3
arr.sort(function(a,b){
return a-b;//降序:b-a
})

8、arr.indexOf()
案例:去重

1
2
3
4
5
6
7
8
9
10
var arr = ['a', 'b', 'b', 'c', 'a'];

function checkDouble(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) == -1) newArr.push(arr[i]);
}
return newArr;
}
console.log(checkDouble(arr));

9、arr.toString() arr.join(分隔符)
10、arr.splice() 删除
11、arr.concat() 合并

字符串对象

1、str.indexOf(c,start)
案例:统计重复字符

1
2
3
4
5
6
7
8
9
var str = 'abcdoedefgoefdoeafao';
var index = str.indexOf('o');
var cnt = 0;
while (index != -1) {
cnt++;
console.log(index);
index = str.indexOf('o', index + 1);
}
console.log(cnt);

2、str.charAt(index) 返回该位置的元素
str.charCodeAt(index) 返回对应的 ASCII 码
案例:统计出现最多的字符和次数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var str = 'abcdoodfegoefdeafaeze';
var obj = {};
for (var i = 0; i < str.length; i++) {
var chars = str.charAt(i)
if (obj[chars]) {
obj[chars]++;
} else {
obj[chars] = 1;
}
}
var max = 0;
var c = '';
for (k in obj) {
if (obj[k] > max) {
max = obj[k];
c = k;
}

}
console.log(c);
console.log(obj[c]);

3、str.substr(start,length)
str.slice(startindex,endindex)
str.split(‘分隔符’) 字符串转换成数组