• 章节:38
  • 访问:742
  • 时长:00:13:12
  • 日期:2019-07-05 11:52

js中通常有两个关键字来定义变量 一个是let 和一个是var

这两个都是可变变量。

在ES6之前,我们都是用var来声明变量,而且JS只有函数作用域和全局作用域,没有块级作用域,所以{}限定不了var声明变量的访问范围。

例如:

{

   var i = 9;

}

console.log(i);  // 9

ES6新增的let,可以声明块级作用域的变量。

{

let i = 9;     // i变量只在 花括号内有效!!!

}

console.log(i);  // Uncaught ReferenceError: i is not defined

关于闭包的学习

http://www.cnblogs.com/cxying93/p/6103375.html

http://www.cnblogs.com/onepixel/p/5062456.html

import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false
console.log("Hello");
console.log("Apples");
console.log("This is a statement");
console.log("This is also a statement");

const myFunc = function () {
    console.log("This statement is inside the function 封装的");
};

console.log("This statement is outside the function111");

myFunc();

function myFunc1(name, weather) {
    console.log("Hello" + name + ".");
    console.log("It is" + weather + "today.");
}
myFunc1("Adam", "sunny");

function myFunc2(name, weather='raining') {
    console.log("Hello" + name + ".");
    console.log("It is" + weather + "today.");
}
    myFunc2("Adam");

    function myFunc3(name, weather, ...extraArgs) {
        console.log("Hello" + name + ".");
        console.log("It is" + weather + "today.");
        for (let i = 0; i < extraArgs.length; i++) {
            console.log("Extra Arg:" + extraArgs[i]);
        }
    }
    myFunc3("Adam", "sunny", "one", "two", "three");

    function myFunc4(name) {
        return ("Hello" + name + ".");
    }
    console.log(myFunc4("Adam"));

    //还可以在一个函数调用另外一个函数 这个函数是匿名函数
    function myFunc5(nameFunction) {
        return ("Hello" + nameFunction() + ".");
    }
    console.log(myFunc5(function () {
        return "Adam";
    }));


    const myFunc7 = (nameFunction) => ("Hello" + nameFunction() + ".");
    const printName = (nameFunction, printFunction) =>
        printFunction(myFunc7(nameFunction));
    printName(function () { return "Adam" }, console.log);

    { 
        var i = 9;
    } 
    console.log(i);  // 9

    //function myF()
    //{
    //    var ttt = "www.bamn.cn";
    //}
    //console.log(ttt);

    function f1(){

        var n=999;

        function f2(){
            n --;
            alert(n); // 999
        }

        return f2;
    }

    var f3 = f1();
    f3();
    f3();
    f3();
    f3();
    f3();

new Vue({
  render: h => h(App),
}).$mount('#app')