let , const關(guān)鍵字
var
看習(xí)慣了java, 看js真的是忍不住想笑,比如說這個var,它太自由了,自由到{}根本限制不住它的生命周期
js的var關(guān)鍵字,無論在何處聲明,都會被視為聲明在函數(shù)的最頂部,不在函數(shù)里面的就被視為在全局的最頂部,這就是所謂的變量提升
function aa(bool) { if (bool) { var test = "hello"; } else {
console.log(test); } } aa(false);
比如上面的代碼, 他就不會報錯,而是說undifined, 因為var的變量提升, 相當(dāng)于下面那樣:
function aa(bool) { var test; if (bool) { test = "hello"; } else {
console.log(test); } } aa(false);
let
換成let關(guān)鍵字,就會普通變量, 它的生命周期被限制在 { }
function aa(bool) { if (bool) { let test = "hello"; } else {
console.log(test); } }
const
const 聲明常量, 值不允許被修改,而且必須初始化
function aa() { let a = 'abc'; const test = a; a = "world"; alert('a=='+a);
alert('test=='+test); } aa();
結(jié)果就是 abc world
如果嘗試直接對test賦值, 編譯器會報錯的
模板字符串的拼接
這樣取值完全沒問題, 但是js的設(shè)計者認(rèn)為他 + 太多了,low爆了
console.log(name1 + "喜歡" + name2);
于是: ${} , 注意啊, 是esc下面的鍵位
console.log(`${name1}喜歡${name2}`);
方法入?yún)⒌哪J(rèn)值
如果我們不給入?yún)髦? 默認(rèn)就是空, 一用就報錯, 所以參數(shù)需要默認(rèn)值是很有必要的
這時候, 用戶傳遞進(jìn)來值了,使用的就是用戶傳遞進(jìn)來的值, 在java中想干這個事,得在參數(shù)位置加老長的注解
function sayName(name = "張三") { alert(name); }
箭頭函數(shù)
es6的箭頭函數(shù)和java8的lambda表達(dá)式如出一轍, 因為學(xué)了java8, 所以es6的箭頭函數(shù)也是秒上手了, 包括流式的操作也如出一轍
對象的簡寫和解構(gòu)
原來,如果方法想返回一個對象,需要這樣寫
function people(name, age) { return { name: name, age: age } }
在es6中,如果屬性和值相同 ,就變成了這樣
function people(name, age) { return { name, age } }
動態(tài)的添加屬性, 在java想都別想,
let p = {name: '張三', age: 680}; alert(p.name); alert(p.age);
* 添加屬性 p.address = '山東';
* 添加函數(shù) p.add = () => {};
其實js這么自由也不一定是好事, 起碼不能亂點了, 它也不給報錯, 一不留神就多了個屬性
組裝對象或數(shù)組SpreadOperator ...
const color = ['red', 'blue']; const colorful = [...color, 'green'] // 現(xiàn)在
colorful數(shù)組就是 三個顏色的數(shù)組 , 同樣換成{} 也一樣
Import 和 export
這個特性vue用的最多, 模塊化的感覺很強烈
let fun = function () { console.log("fun") } export {fun} // 在第二個文件 導(dǎo)入 import
fun from "./fun"; // 然后使用 fun()
面向?qū)ο蟮木幊棠J?類
class person { // 構(gòu)造函數(shù) constructor(name) { this.name = name; // 不提前定義變量?
不存在的,直接點就行了老鐵 } // 方法 sayHello() { console.log("hello"); } } // 類的繼承 class
Student extends person { constructor(name) { super(name); } sayHaha() {
console.log("haha"); } }
使用:
它并不能寫 父類引用指向子類對象
//person stu = new Student('zhangsan'); var stu = new Student('zhangsan');
stu.sayHaha();
熱門工具 換一換
感谢您访问我们的网站,您可能还对以下资源感兴趣:
调教肉文小说-国产成本人片免费av-空姐av种子无码-在线观看免费午夜视频-综合久久精品激情-国产成人丝袜视频在线观看软件-大芭区三区四区无码-啊啊好爽啊啊插啊用力啊啊-wanch视频网-国产精品成人a免费观看