淘先锋技术网

首页 1 2 3 4 5 6 7

let:

申明的变量具有块级作用域,只能在大括号里面访问,括号外面不能使用。可以改变值

const:声明常量,常量就是值(内存地址)不能变化的量。

1.const 具有块级作用域
2.const 关键字的常量必须赋初始值
3.const 的常量简单数据类型不可以更改,但复杂数据类型的值和属性可以修改,但不能重新赋值

数组解构:

let arr = [1,2,3];
let [a,b,c] = ary;
console.log(a); 则输出1; 如果变量多出来则输出undefound、

箭头函数:

const fn = (形参) => {

}
//如果只有一个参数则小括号可以省略
//如果则行结果就是函数的返回值,并且函数只有一句代码,则函数体大括号可以省略
//箭头函数不绑定this,箭头函数没有自己的this关键字,如果在箭头函数中使用this,则将指向箭头函数定义位置中的this
剩余参数在箭头函数中如果有多个参数用 ( …agem )表示,可以接受所有的参数

数组:

数组和并:
方法1 :
let ary1 = [1,2,3]; let ary2 = [4,5,6]; let ary3 = […ary1 , …ary2];
方法2:
let ary1 = [1,2,3]; let ary2 = [4,5,6]; ary1.push(…ary2);
Array.from();可以把伪数组转换为数组
arr.find( (time,index) => time == 2 );用于找出第一个数组对象成员,如果没找到则返回undefined;
arr.findindex( (value,index) => value > 15 ) 用于找出第一个数组对象成员的索引号,如果没找到则返回 -1;
arr.includer(“a”);如果有这个元素就返回true,否者返回false

Set数据结构:

向set中添加值:s4.add(‘a’).add(‘b’);
向set中删除值: s4.delete(‘a’);
判断set中一个值是否是set的数据结构中的成员:s4.has(‘a’);
清空set中的所有值:s4. clear();
1.数组去重复的成员:
const s3 = new Set([‘a’,‘a’,‘b’,‘b’]);
const ary = […s3];
console.log(ary); 输出结果为【a,b】

类:

class Father {

}
class Son extends Father { //继承父类的的方法
//类的共有属性放到constructor里面
constructor(uname,age) {
super(x,y);//调用父类中的构造函数 注意:必须写在this之前使用
this.uname = uname;
this.age = age;
}
//创建方法
game(play){
log(this.uname + “打” + play + “的游戏”);
}
}
构造函数中的this指向实例对象;
方法里的this指向这个方法的调用者;
var hg = new Star(“胡歌” ,18);
hg.game(“王者荣耀”);
insertAdjacent
素内部的最后一个子节点后面 afterend:元素自身的后面
prototype原型对象 可以共享方法
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();双击禁用事件
input.select(); //文本框的的文字处于选中状态
onblur//失去焦点事件

es5 :

fn.call(arr ,5,4);可以改变函数this的指向,并且不影响参数
var max = Math.max.apply(Math,arr); apply可以改变函数this的指向,并且只能以数组的形式传递参数
.bind() :1.不会调用原来的函数,可以改变原来的函数内部的this指向
2. 返回的是原函数改变this之后产生的新函数

清除多余的空格:

var str= input.value.trim();清除多余的两边空格,注意返回一个新的值

获取对象所有的属性名:
var arr = Obj
ect.keys(obj)
对象方法:

Object.definPerty(obj , prop , {
value:设置属性的值 默认为undefined
writable:值是否可以被重写(修改)。默认为false
enumerable:目标属性是否可以被枚举(遍历)默认为false
configurable:目标属性是否可以被删除或是否可以再次修改特性默认为false
})

为脚本开启严格模式:

“use strict”;

浅拷贝:

.assign(newArr,arr);只拷贝当前地址,一修改都修改

正则表达式:

这里的或符号为 | ;
var rg =/^abc/; console.log(rg.test(‘abcd’)); true //开头必须加abc
var rg =/^abc / ; c o n s o l e . l o g ( r g . t e s t ( ′ a b c d ′ ) ) ; f a l s e / / 必 须 是 a b c , 精 确 匹 配 v a r r g = / [ a b c ] / ; c o n s o l e . l o g ( r g . t e s t ( ′ a ′ ) ) ; t u r e / / 只 要 包 含 一 个 就 是 t r u e v a r r g = / [ a − z ] / ; c o n s o l e . l o g ( r g . t e s t ( ′ a ′ ) ) ; t u r e / / 只 要 包 含 其 中 一 个 字 母 就 是 t r u e 字 符 组 合 : v a r r g = / a − z A − Z 0 − 9 /; console.log(rg.test('abcd')); false //必须是abc,精确匹配 var rg =/[abc]/; console.log(rg.test('a'));ture //只要包含一个就是true var rg =/[a-z]/; console.log(rg.test('a'));ture //只要包含其中一个字母就是true 字符组合:var rg = /^a-zA-Z0-9 /;console.log(rg.test(abcd));false//abc,varrg=/[abc]/;console.log(rg.test(a));ture//truevarrg=/[az]/;console.log(rg.test(a));ture//truevarrg=/azAZ09/ 既可以输入数字又可以输入字符
如果[ ]里面含有^,则是取反的意思 ()优先级

量词符:

  • var rg =/^a*$/; console.log(rg.test(‘aaaa’));true 相当于>=0出现的次数
  • var rg =/^a+ / ; c o n s o l e . l o g ( r g . t e s t ( ′ a a a a ′ ) ) ; t r u e 相 当 于 > = 1 出 现 的 次 数 ? v a r r g = / a ? /; console.log(rg.test('aaaa'));true 相当于>=1出现的次数 ? var rg =/^a? /;console.log(rg.test(aaaa));true>=1?varrg=/a?/; console.log(rg.test(‘aaaa’));true 相当于 1 || 0出现的次数
    var rg =/^a{3} / ; 3 就 是 重 复 3 次 v a r r g = / a 3 /; { 3 }就是重复3次 var rg =/^a{3} /;33varrg=/a3/; { 3 , }就是重复3次,或更多次
    var rg =/^a{3}$/; { 3 ,16 }就是重复3次,到16次
    预定义类:
    \d 相当于【0-9】 \D相当与【^0-9】 \w相当于【A-Za-z0-9_】 \W相当于【^A-Za-z0-9_】 \s相当于【包括换行符,制表符,空格符】 \S相当于【非空格的字符】

替换敏感词:

.replace();替换方法
btn.onclick = function(){
div.innerHTML = text.value.replace(/激情 | 毛爷爷/g ,’ **’ )
}
正则表达式的swith :/ /g g:全局匹配 i:忽略大小写 gi:全局匹配 + 忽略大小写