ReactNative ES6简介 及基本语法第一篇

来源:互联网 发布:2017年黄金周旅游数据 编辑:程序博客网 时间:2024/05/29 14:30

S6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。

S6 引入了一种新的原始数据类型Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种是:undefinednull、布尔值(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]();

上面代码中,变量ilet声明的,当前的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});

0 0
原创粉丝点击