ReactNative ES6简介 及基本语法第一篇
S6新增了let命令,用來聲明變量。它的用法類似于var,但是所聲明的變量,只在let命令所在的代碼塊內(nèi)有效。
S6 引入了一種新的原始數(shù)據(jù)類型Symbol,表示獨(dú)一無二的值。它是 JavaScript 語言的第七種數(shù)據(jù)類型,前六種是:undefined、null、布爾值(Boolean)、字符串(String)、數(shù)值(Number)、對(duì)象(Object)。
//let和var 區(qū)別
//共同點(diǎn):定義變量
let name = Symbol();
let age = Symbol();
//name是一個(gè)Symbol值,作為屬性名
obj[name] = function(){
? ? console.log("jack");
};
Symbol 值通過Symbol函數(shù)生成。這就是說,對(duì)象的屬性名現(xiàn)在可以有兩種類型,一種是原來就有的字符串,另一種就是新增的 Symbol 類型。凡是屬性名屬于 Symbol 類型,就都是獨(dú)一無二的,可以保證不會(huì)與其他屬性名產(chǎn)生沖突。
//var變量可以跨代碼塊
//let只在代碼塊內(nèi)部有效
{
? ? var a = "jason";
? ? let b = 20;
}
console.log(a);
if(typeof(b) == "undefined"){
? ? alert("undefined");
}
//在for循環(huán)里
for(let i = 0; i < 5; i++){
}
console.log(i);
//定義順序
console.log(a); //let 引用錯(cuò)誤
let a = "jason";
//案例
var a = [];
for(let i = 0; i < 5; i++){
? ? a[i] = function(){
? ? ? ? console.log(i);
? ? }
}
a[2]();
上面代碼中,變量i是let聲明的,當(dāng)前的i只在本輪循環(huán)有效,所以每一次循環(huán)的i其實(shí)都是一個(gè)新的變量,所以最后輸出的是6。你可能會(huì)問,如果每一輪循環(huán)的變量i都是重新聲明的,那它怎么知道上一輪循環(huán)的值,從而計(jì)算出本輪循環(huán)的值?這是因?yàn)?JavaScript 引擎內(nèi)部會(huì)記住上一輪循環(huán)的值,初始化本輪的變量i時(shí),就在上一輪循環(huán)的基礎(chǔ)上進(jìn)行計(jì)算。
//const常量,只能一次賦值
//const PI = 3.14159;
//PI = 3.14;
//對(duì)象常量
//對(duì)象的屬性可以修改,對(duì)象的引用不能修改
//const obj = {name:"jason"};
//obj.name = "jack";
//凍結(jié)對(duì)象
//防止修改對(duì)象的屬性
const obj = Object.freeze({name:"jason"});
obj.name = "jack";
console.log(obj.name);
//old version
var obj = {name:"jack",age:20};
var a = obj.name;
var b = obj.age;
//解構(gòu)賦值
//數(shù)組解構(gòu)賦值,按照順序
let [a,b] = ["jack",20];
console.log(a);
console.log(b);
//對(duì)象解構(gòu)賦值,亂序
var {name,age} = {name:"jack",age:20};
console.log(name);
console.log(age);
//用途
//1.交換變量的值
let x = 1;
let y = 2;
[x, y] = [y, x];
//2.從函數(shù)返回多個(gè)值
// 返回一個(gè)數(shù)組
function func1() {
? ? return [1, 2, 3];
}
let [a, b, c] = func1();
//old version
function func1() {
? ? return [1, 2, 3];
}
var arr = func1();
let a = arr[0];
let b = arr[1];
let c = arr[2];
// 返回一個(gè)對(duì)象
function func2() {
? ? return {
? ? ? ? foo: 1,
? ? ? ? bar: 2
? ? };
}
let { foo, bar } = func2();
// 參數(shù)是一組有次序的值
//數(shù)組解構(gòu)賦值
function func3([x, y, z]) {}
func3([1, 2, 3]);
// 參數(shù)是一組無次序的值
//對(duì)象解構(gòu)賦值
function func4({x, y, z}) { }
func4({z: 3, y: 2, x: 1});
總結(jié)
以上是生活随笔為你收集整理的ReactNative ES6简介 及基本语法第一篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 银行卡多少岁可以办卡
- 下一篇: ArrayList LinkedList