红宝书
lufangzhou vue
# var&let
- let
块级作用域
- var
函数作用域 变量提升
# null&undefined
- null-空对象指针,声明对象的时候时候赋值,let obj = null
- undefined-声明了,未赋值。
# 模板字面量标签函数
let a = 6, b = 9
function simpleTag(strings, ...val2) {
console.log(strings)//["","+","=",""]
console.log(val2)//[6915]
return 'foobar'
}
let taggedResult = simpleTag`${a} + ${b} = ${a+b}`
1
2
3
4
5
6
7
2
3
4
5
6
7
# symbol
//demo1
let s1 = Symbol()
let s2 = Symbol()
s1 == s2//false
//demo2
({a:1} == {a:1})//false
//symbol 可以作为对象的key
const obj = {};
const sym = Symbol();
obj[sym] = 'foo';
obj.bar = 'bar';
console.log(obj); // { bar: 'bar' }
console.log(sym in obj); // true
console.log(obj[sym]); // foo
console.log(Object.keys(obj)); // ['bar'],获取不到symbol
console.log(Reflect.ownKeys(obj)); // ['bar','Symbol()]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Object
- 属性
let obj = {a:1}
obj.hasOwnProperty('a')//true
obj.constructor() //{} 用于创建当前对象的函数
obj.toString() //返回的对象字符串表示
1
2
3
4
2
3
4
# 操作符
//幂运算 **
Math.pow(3,2)
3**2 //9 3的2次方
//加性操作符
5+ "5" //'55'
//减
5-'' //5
5- '2' //3
//等于
NaN == NaN //false
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 以下为String
的用法
# chartAt
- 找出索引位置的值
'abcd'.chartAt(2) //c
1
# concat
- 连接
'a'.concat('b')// 'ab'
1
# indexOf,lastIndexOf
- 找出当前字符的位置
'abc'.indexOf('b') //1
'abcbb'.lastIndexOf('b')//4
'abcbb'.lastIndexOf('cbb')//2
1
2
3
2
3
# startWith,endWith,includes
- 是否包含
'abccba'.startsWith('abc') //true
'abcbb'.includes('b')//true
1
2
2
# trim()
- 删除前后空格
# repeat(num)
- 复制当前字符串
var str = 'abc '
star.repeat(10)
//"abc abc abc abc abc abc abc abc abc abc "
1
2
3
2
3
# padStart(len, val),padEnd()
- 填充字符串
var str = 'abc'
str.padStart(5) //" abc"
str.padEnd(10, 'de')// "abcdededed"
1
2
3
2
3
# localeCompare()
- 也是比较,本人觉得没必要用