1、语法
js变量命名规范:
变量可以由任意顺序的大小字母、下划线、美元符号组成,但不能以数字开头,不能是javascript中的保留关键字。
js区分大小写。
所谓标示符,就是指变量、函数、属性的名字,或者函数的参数。
按惯例,表示符采用驼峰大小写格式,也就是第一个字母小写,剩下的每个单词的首字母大写。
2、严格模式
严格模式是为javascript定义了一种不同的解析与执行模型。通过在顶端添加以下代码:
"use script";
function doSomething(){
"use strict";
}
3、关键字和保留字:
参考:http://www.runoob.com/js/js-reserved.html
4、变量:
js中是弱类型,所以定义任何变量都是用一个关键字var,
js中的类型事弱类型,他的类型事根据值定的。如果在开发中还是建议x永远赋值为同一种类型。
在一个作用域内是可以定义相同的变量名的,但是不建议。
用var操作符定义的变量将称为定义该变量的作用域中的局部变量,如下:
function test(){
var message = "hello";
}
test():
alert(message);//错误,局部变量,在函数退出后会被销毁。
function test(){
message = "hi";//全局变量
test():
alert(message);
用一条语句定义多个变量,只要像下面这样把每个变量用逗号隔开即可:
var message = "hi",
found = false,
age = 29;
5、数据类型:
5种基本数据类型:Undefined Null Boolean Number String
1种复杂数据类型,Object
5、1 typeof操作符
undefined ---- 如果这个值未定义
boolean---------如果这个值是布尔值
string------------如果这个值是字符值
number----------如果这个值是数值
object------------如果这个值是对象或者null
function---------如果这个值是函数
注意:typeof null 会返回object,null被认为是一个空的对象引用。
5.2 Undefined类型:
声明但未初始化,就是undefined
5.3 Null类型
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化Null而不是其他值。
5.4 Boolean
要将一个值转换为对应的Boolean值,可以调用Boolean()。
var a = "";
var b = 0;
var c = false;
var d = null;
var e;
5.5 Number类型
isFinite():确定一个函数是不是有穷的,是不是位于最大值和最小值之间。
isNaN( value):确认参数是否“不是数值“,若value可以被转化为数值,则返回true,若不能转化为数值,则返回false.
Number(),parseInt(),parseFloat()把非数值转化为数值。
5.6 String类型:
toString()和String()可以将一个值转换为字符串。
5.7 Object类型:
constructor:保存这用于创建当前对象的函数。
hasOwnProperty():返回一个布尔值,表示某个对象是否含有指定的属性,而且此属性非原型链继承。
其中,作为参数的属性名必须以字符串形式指定。
isPrototypeOf():返回一个布尔值, 用于检查传入的对象是否是当前对象原型。
propertyIsEnumerable():判断指定属性是否可以使用for-in语句来枚举。
toLocaleString();返回对象的字符串表示,该字符串与执行环境的地区对应。
toString();返回对象的字符串表示。
valueOf(),返回对象的字符串,数值或布尔值表示。
js中Object常用方法和属性
https://blog.csdn.net/wlwanglu/article/details/52253002
6、操作符
算数操作符,位操作符,关系操作符,相等操作符。
7、语句
7.1 for:
js没有块级作用域,因此在循环内部定义的变量在外部也可以访问。
7.2 for-in:
是一种精准的迭代语句,可以用来枚举对象的属性。
7.3 lable,break,continue配合使用。
返回代码中特定的位置
7.4 with语句:将代码的作用域设置到一个特定的对象中。
7.5 switch语句:
break关键字会导致代码执行流跳出switch语句,如果省略关键字,就会导致执行完当前case后,继续执行下一个case。
首先可以在switch语句中使用任何数据类型(在很多其他语言中只能使用数值),无论是字符串,还是对象都没有问题。
其次,每个case的值不一定是常量,可以是变量,甚至是表达式。
8、函数:
1)使用function关键字来声明。
2)函数在定义时不必指定是否返回值,实际上任何函数在任何时候都可以通过return语句后跟要返回的值来实现返回值。
3)return语句也可以不带任何返回值,函数会停止执行,并返回Undefined。
格式:
function 函数名(参数...)
{
函数体;
return 值
}
4)带参数的函数:
A:写js的函数时,形式参数是不用var修饰的,不能和识别
B:遇到函数名相同,参数不同的函数时,后者会把前者覆盖,就在原则,
在js中是没有函数重载这一概念,函数名不要一样。
C:函数不介意传递多少参数,比如指定义一个参数,依然可以传递两个或者更多。
在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。
arguments[n],可以获取第n个参数。
D:如果改变arguments[n]的值,对应的形参也会改变。
如果定义两个参数,只赋值一个,那另一个的值是undefined.