js从入门到精通(2.2-3.2)

2.2 变量和常量

2.2.1 常量

在程序运行中保持不变的数据

2.2.2 变量

命名 字母或者下划线开头,中间可以是数字、字母或者下划线

不能包含空格 加号 减号 不能使用关键字 严格区分大小写

声明赋值

只是声明变量,并未对其赋值,则默认为undefined。

var可以多次声明同一个变量,如果该变量已经有一个初始值,那么此时相当于重新赋值。

作用域 全局变量和局部变量 全局声明在方法外部

生存周期 全局变量在主程序定义,一直到程序结束,局部变量只在函数之中,函数结束后,生存期结束。

2.2.3 运算符

typeof 返回操作数当前所容纳的数据类型

new 创建对象 new constructor [(arguments)]

constructor 必选项

arguments 可选项

2.3 数据类型转换

转化为数值类型数据

类型 转换后结果
undefined NaN
null 0
逻辑型 false 0 true 1
字符串 内容是数字 则为数字 否则NaN
其他对象 NaN

转化为字符型

类型 转化后的结果
undefined "undefined"
null "null"
逻辑 "false" "true"
其他对象 若存在 为toString()方法的值 否则结果为"undefined"

(流程控制 跳过)

3 函数

3.1超链接调用函数

javascript:test()"

3.2嵌套函数

 <script type="text/javascript">
    var outer = 10
        function outFunction(number1,number2){
            function innerFunction(){
                alert(number1+number2+outer);
            }
            return innerFunction();
        }
    </script>
</head>
<body>
   <script type="text/javascript">
        outFunction(10,10);
   </script>
</body>

内部函数可以访问到 全局变量和外部函数的形参

Maximum call stack size exceeded 报错

在return innerFunction 写错 return outFunction 无终止递归

js闭包 访问其他函数局部变量 可以使这些局部变量始终保持在内存中(有点类似于全局变量)

http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html

function f1(){

    var n=999;

    nAdd=function(){n+=1}

    function f2(){
      alert(n);
    }
    return f2;
  }

  var result=f1();

  result(); // 999

  nAdd();

  result(); // 1000

第二次执行 reslut 的时候 不是重新定义变量n为 999

js从入门到精通(2.2-3.2)

上一篇:Kubernetes Service简介


下一篇:Gluttonous Snake.html