跟我学JavaScript 二 基本概念2

任何语言的核心都必然会描述这门语言最基本的规范。

  • 语法 JavaScript的语法大量借鉴了C及其他类C语言(如Java,Perl)的语法。
  • 区分大小写,变量Test和test是表示两个不同的变量
  • 变量名、函数名、属性或者函数的参数第一个字符必须是字母下划线或一个美元符号$,其他字符同样要求
  • 注册 单行注释//  多行注释 (/*) 开头 (*/)结尾
  • 不要在同一个行声明多个变量
  • 请使用===/!==来比较true/false或者数值
  • 使用对象字面变量替代new Array这种形式
  • 不要使用全局函数
  • Switch语句必须带有default分支
  • 函数不应该有时候有返回值
  • For循环必须使用大括号
  • For-in 循环变量 应该使用var关键字明确限定作用域,从而避免作用域污染

--------------------------------------------------分割线 直接跳过-------------------------------------------------

  • for-in语句
for(var propName in window){
    console.log(propName);
}

  每次执行一直持续到对象中的所有属性都被枚举一遍位置。输出的先后顺因浏览器而异。但是如果表示要迭代的对象的变量值为nullundefined,for-in与具就会抛出异常。所以在使用之前,先检查改对象是不是nullundefined

  • 函数对任何语言来说都是一个核心的概念。基本语法如下:
function functionName(argv0,argv1,argv2,...,argvN){
    "use strict"
}

严格模式下函数名和参数名不可以是evalarguments,不可以出现两个命名相同的参数。

  • 理解参数JavaScript函数的参数与大多数其他语言中的参数有所不同,JavaScript的函数不介意传递进来多少个参数,也不在乎传进来的是什么类型。也就是说你定义函数只接收两个参数只是为了方便理解函数的功能。函数体内可以通过arguments对象来访问这些参数,arguments用法与数组类似但其并不是数组,即第一个元素用arguments[0]...以此类推。如下
function sayF(){
    console.log(arguments.length);
    console.log(arguments[0]+","+arguments[1]+","+arguments[2])
}
sayF("argv1",1,function(){console.log("我是一个函数")})

 

没有传递值得的命名参数被赋予undefined值。与定义参数但又没有初始化的意义一样。

  • JavaScript没有重载
function add(num){
    return num+100;
}
function add(num1,num2){
    return num1+200;
}
console.log(add(100));
输出结果:300

 

由于不存在函数签名的特性,所以JavaScript函数不能重载。虽然没有重载但是可以模拟重载,可以通过arguments对象和typeof判断参数模拟出重载。

 

posted @ 2016-09-13 14:55  小严  阅读(154)  评论(0)    收藏  举报