Javascript基础和ES6
HTML的基础事件
- onmouseover、onmouseout表示JS事件的鼠标移入鼠标移出
- document.getElementById('id') JS中选择HTML的ID元素
<input type="checkbox" onmouseover="document.getElementById('div1').style.display='block';" onmouseout="document.getElementById('div1').style.display='none';">
JS的函数
<script> function 函数名(){ 代码; } </script>
为a链接添加JS
<a href="javascript:">链接</a> 留空则代表链接不跳转
唯一例外,JS修改class时需写成className
<script>
function toRed() {
var oDiv = document.getElementById('div1');
oDiv.className = 'box';
}
</script>
两种操作属性的方法
- 以.号后跟属性名 如:
oTxt.value = '大大'
- 方括号内加属性名(一般用于变量传参时) 如:
oTxt['value'] = '大大'
提取行间事件,(如写在head头里需加window.onload)
<script>
var oBtn = document.getElementById('btn1');
oBtn.onclick = function () {
alert('a');
};
</script>
this代表当前发生事件的元素
this.className = 'active';
innerHTML代表元素的内容(可以识别HTML代码)
oBtn.onclick = function () {
oDiv.innerHTML = oTxt.value;
}
字符串转数字
parseInt() 转成整数
parseFloat() 转成浮点数
let | 定义变量 | 不能重复声明,有块级作用域,可以修改 |
---|---|---|
const | 定义常量 | 不能重复声明,有块级作用域,不可以修改 |
箭头函数
- 如果只有一个参数, ()可以省
- 如果只有一个return,{}可以省
普通函数 function 名字() { ... } 箭头函数 ()=>{ ... }
参数扩展(...变量)
//在函数中接收剩余变量 function show(a, b, ...args) { alert(a); alert(b); alert(args); } // 展开数组 let arr4 = [1, 2, 3]; function show(a, b, c) { alert(a); alert(b); alert(c); } show(...arr4);//等同于show(1, 2, 3)
解构赋值
- 左右两边结构必须一样
- 右边必须是个合法的东西
- 声明和赋值不能分开(必须在一句话里完成)
// let arr = [1, 2, 3]; // let a = arr[0]; // let b = arr[1]; // let c = arr[2]; 等同于: let [a, b, c] = [1, 2, 3]; json赋值: let {a, c, d} = {a: 12, c: 5, d: 6}; 也可以: let [{a,b}, [n1, n2, n3], num, str] = [{a: 12, b: 5}, [12, 5, 8], 8, 'cxzcv']
map | 映射 | 一个对一个 |
---|---|---|
reduce | 汇总 | 一堆出来一个 |
filter | 过滤器 | 一堆->剩下的 |
forEach | 循环 |
map
let arr = [12, 5, 8]; let result = arr.map( item => item*2); alert( result);
reduce
let arr = [12, 69, 180, 8763]; let result = arr.reduce(function (tmp, item, index) { if (index != arr.length - 1) { return tmp + item } else { return (tmp + item)/arr.length; } return a + b ; }); alert(result);
filter
let arr = [12, 5, 8, 99, 27, 36, 75]; let result = arr.filter(item => { if (item%3 == 0) { return true; } else { return false; } }); 箭头函数简写为 let result = arr.filter(item => item%3 == 0); alert(result);
forEach
let arr = [12, 5, 8, 9]; arr.forEach(item => { alert(item); });
startsWith与endWith
let str = 'www.dadas1.txt'; alert(str.startsWith('www')); alert(str.endsWith('.txt'));
字符串模板
``表示反单引号,通过${变量}符号拼接变量
let a = 12; let str = `a${a}bc`; alert(str);//a12bc
- 创建
class User {
constructor(name, pass) {
this.name = name;
this.pass = pass;
}
showName() {
alert(this.name);
}
showPass() {
alert(this.pass);
}
}
var u1 = new User('blue', '123456');
u1.showName();
u1.showPass();
- 继承
class VipUser extends User{
constructor(name, pass, level) {
super(name, pass);
this.level = level;
}
showLevel() {
alert(this.level);
}
}
var u1 = new VipUser('blue', '123456', 99);
u1.showLevel();
- 组件化-class
- JSX
JSX == babel == browser.js
json的标准写法
- 只能用双引号
- 所有的名字都必须用引号包起来
json对象转字符串
let json = {a: 12, b: 5}; let str = 'http://it.kaikeba.com/path/user?data=' + encodeURIComponent(JSON.stringify(json)); alert(str);
字符串转json
let str = '{"a": 12, "b": 5, "c": "abc"}'; let json = JSON.parse(str); console.log(json)
简写
- 普通属性(key与value一样时可以写一个)
let a = 12; let b = 5; let json = {a, b};//相当于{a: a, b: b} console.log(json);
b. 方法简写(可以省略: function)
let json = { a: 12, // show: function(){ // alert(this.a); // // }, show() { alert(this.a); } };
异步 | 操作之间没啥关系,同时进行多个操作 |
---|---|
同步 | 同时只能做一件事 |
- 例子
function createPromise(url) {
return new Promise(function (resolve, reject) {
//resolve-成功,reject失败
$.ajax({
url,
dataType: 'json',
success(arr) {
resolve(arr);
},
error() {
reject();
}
});
})
}
Promise.all([
createPromise('data/arr.txt'),
createPromise('data/json.txt')
]).then(function (arr) {
let [res1, res2] = arr;
alert('全部成功');
alert(res1);
alert(res2);
}, function () {
alert('至少有一个失败了');
});
更加优化例子
Promise.all([ $.ajax({url: 'data/arr.txt', dataType: 'json'}), $.ajax({url: 'data/json.txt', dataType: 'json'}) ]).then(function (results) { let [arr, json] = results; alert('成功了'); console.log(arr, json); }, function () { alert('失败了'); })
普通函数 | 一路到底 |
---|---|
generator函数 | 中间能停 |
- 例子
function *show() {
alert('a');
yield;
alert('b');
}
let genObj = show();
genObj.next();
genObj.next();
yield
可以传参也可以返回
相关文章
- webpack相关知识
能够处理JS文件的互相依赖关系 能够处理JS的兼容问题 安装 全局安装 npm install webpack -g 项目安装 npm install webpack --save-
- Javascript基础和ES6
HTML的基础事件 onmouseover、onmouseout表示JS事件的鼠标移入鼠标移出 document.getElementById('id') JS中选择HTML的ID元素<in
- JavaScript编码规则
JavaScript编码规则 目的:改善协作编码、代码质量。 var 声明变量必须用var。 防止变量变为全局变量,污染全局环境。 常量 基本类型number、string、boolean是常量值。对
- JavaScript获取和设置CSS属性
获取样式 元素对象的宽高位置距离等属性 如offsetWidht、cilentWidht、scrollWidth…… let oWidth=obj.offsetWidth; 注意: 只能获取属
- javascript作用域、上下文、this和闭包详解
词法作用域lexical scope 定义在词法阶段的作用域。词法作用域是变量和语句块在定义时所处的位置决定的。 全局 块级:在{}之内是一个块级作用域(ES6之前没有块级作用于只有函数内的局部作用
随机推荐
- webpack相关知识
能够处理JS文件的互相依赖关系 能够处理JS的兼容问题 安装 全局安装 npm install webpack -g 项目安装 npm install webpack --save-
- Javascript基础和ES6
HTML的基础事件 onmouseover、onmouseout表示JS事件的鼠标移入鼠标移出 document.getElementById('id') JS中选择HTML的ID元素<in
- JavaScript编码规则
JavaScript编码规则 目的:改善协作编码、代码质量。 var 声明变量必须用var。 防止变量变为全局变量,污染全局环境。 常量 基本类型number、string、boolean是常量值。对
- JavaScript获取和设置CSS属性
获取样式 元素对象的宽高位置距离等属性 如offsetWidht、cilentWidht、scrollWidth…… let oWidth=obj.offsetWidth; 注意: 只能获取属
- javascript作用域、上下文、this和闭包详解
词法作用域lexical scope 定义在词法阶段的作用域。词法作用域是变量和语句块在定义时所处的位置决定的。 全局 块级:在{}之内是一个块级作用域(ES6之前没有块级作用于只有函数内的局部作用