v-if="number.length > 10 "
当number为null时,上段代码报错,修改如下:
v-if="number != undefined && number.length > 10 "
普通this,指向调用该函数的对象,调用b()的是c,因此this指向c,输出a+
var factory = function(){
this.a = 'a';
this.b = 'b';
this.c = {
a:'a+',
b:function(){
return this.a;
}
}
};
console.log(new factory().c.b()); // a+
使用箭头函数,this指向定义时的对象,即a,因此输出a
var factory = function(){
this.a = 'a';
this.b = 'b';
this.c = {
a:'a+',
b:()=> {
return this.a;
}
}
};
console.log(new factory().c.b()); // a
for循环
,数组较大时,优化效果才比较明显for(j = 0,len=arr.length; j < len; j++) {
}
forEach循环
,无返回值let arr = [1,2,3,4];
let result = 0;
arr.forEach(item => {
item > 2 ? result++ : result;
})
map循环
,提供一个回调函数,有返回值,可以returnlet arr = [1,2,3,4];
let res = arr.map((item,index) => {
return item * index;
})
console.log(res);
for of 循环
,需要ES6支持let arr = [1,2,3,4];
for (let value of arr){
console.log(value);
}
for in 循环
···
let arr = [1,2,3,4];
for (let index in arr){
console.log(arr[index]);
}
···
for of 与for in 区别
1. for of遍历的是数组的元素值,而for in是数组的索引值
2.for of只支持数组遍历,而for in 支持对象
find
,查找数组中匹配的第一个元素
let arr = [1, 2, 3, 4, 5, 6]
let newArr = arr.find(val => {
return val > 2
})
console.log(newArr) // 3
undefined:
声明了变量但未初始化,”缺少值“ = 此处应该有值,但现在没有
null:
表示一个对象的值,“不存在的对象” = 此处不应该有值
' ':
空字符串,长度为0
// 声明但未初始化
let number;
console.log(number === undefined) // true
// 不存在的对象
var d = document.getElementById('notExistElement');
console.log(d === null); // true
console.log(undefined == null); // true
console.log(undefined === null); // false
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
// 一个对象的值
var a = null;
console.log(typeof a); // object
// 空的字符串
var b = '';
console.log(typeof b); // string
indexOf() :
返回某个指定的字符串值在字符串中首次出现的位置。
let str="helloworld";
let result1 = str.indexOf('aa');
let result2 = str.indexOf('wor');
console.log(result1); // -1
console.log(result2); // 5