1.变量和函数的命名规则
2.空格,缩进,注释的使用规范
3.其他使用规范
===
强等类型判断一起switch
语句必须有default
分支new Array()
定义和用法
用来计算某个字符串,并且执行其中的JavaScript代码
语法
eval(string)
需要注意的点
map
和 parseInt
函数 ['1','2','3'].map(parseInt(item,index))
=> parseInt('1',0)
=> parseInt('2',1)
=> parseInt('3',2)
// parseInt 第一个参数为 需要被转换的字符串
// parseInt 第二个参数为 被转换字符串的进制
// parseInt('2',1) 表示将 1进制的 字符串‘2’转换为10进制,不存在1进制的字符串'2',所以返回值为NaN
[1,NaN,NaN]
this
是 执行上下文
var name = 'jeskson';
function person() {
return this.name;
}
console.log(this.name); // jeskson
console.log(window.name); // jeskson
console.log(person()); // jeskson
function person() {
return this.name;
}
var obj = {
name: 'jeskson'
}
console.log(person.call(obj)); // jeskson
console.log(person.apply(obj)); // jeskson
function Person(name) {
this.name = name;
return name;
}
console.log(new Person('jeskson').name); // jeskson
arguments
document
.getElementsByTagName
获取的元素标签集合length
属性,都是有序的引用组合,可以下标获取元素,伪数组也是可迭代对象,可以调用 for of区别:Array
.isArray
,伪数组为false,并且数组的类方法不能使用,例如遍历的forEach等
Array
.from
(伪数组) 可以将伪数组转化为正常的标准数组Array
.prototype
.slice
.call
(伪数组) 实际上是调用数组的 slice
方法利用伪数组的可迭代特性,for
of 手动 push
到空的标准数组caller
是JavaScript中函数类型的自由属性,用来标识函数的调用的函数,如果是父函数中引用调用子函数,则子函数的caller是父函数,如果函数直接在顶层JavaScript环境中调用,那么caller则是 null
function test(){
console.log(arguments.callee)
}
test()
// 返回值是test函数本身,返回值可以直接调用类似 arguments.callee()
function countStr(str) {=
let dic = str.split('').reduce((prev,current)=>{
if(prev[current] && prev[current].value === current) ++prev[current].count
else prev[current] = {
value:current,
count:0
}
return prev
},{})
for(let index = 0;index< Object.keys(dic).length;index++){
let k = Object.keys(dic)[index]
console.log(dic[k].value + ' : '+ dic[k].count)
}
}
function trim(str) {
if (str && typeof str === "string") {
return str.replace(/(^s*)|(s*)$/g,""); //去除前后空白符
}
}
function quickTrim(str) {
let temp = str.split('')
let resultArry = temp.reduce((count,ele)=>{
if(ele !== ' ') count.push(ele)
return count
},[])
return resultArry.join('')
}
b.forEach(ele=>{
a.push(a)
})
a.concat(b)
a.push.apply(a,b)
&&
||
!
Event
target
对象判断具体触发对象li
元素不监听事件,将事件委托给 ul
元素处理和捕获undefined
===
运算符false