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