一.语法
1.js区分大小写.
2.标识符
所谓的标识符就是指js的变量名,函数名和参数名,其命名规则是
①第一个字符必须是字母,下划线或者$.
②其他字符可以是字母、下划线、美元符号或数字.
③尽量使用驼峰命名方式.
3.注释
分为单行注释和多行注释
//
/*
*
*/
不做多的说明
4.严格模式
严格模式是为 JavaScript 定义了一种不同的解析与执行模型。在严格模式下,ECMAScript 3 中的一些不确定的行为将得到处理,而且对某些不安全的操作也会抛出错误。
要在整个脚本中启用严格模式,可以在顶部添加如下代码:
"use strict";
这行代码看起来像是字符串,而且也没有赋值给任何变量,但其实它是一个编译指示(pragma) ,
用于告诉支持的 JavaScript 引擎切换到严格模式。这是为不破坏 ECMAScript 3 语法而特意选定的语法。
在函数内部的上方包含这条编译指示,也可以指定函数在严格模式下执行:
function doSomething(){
"use strict";
//函数体
}
严格模式下,JavaScript 的执行结果会有很大不同,因此本书将会随时指出严格模式下的区别。支
持严格模式的浏览器包括 IE10+、Firefox 4+、Safari 5.1+、Opera 12+和 Chrome。
5.语句
①js语句一般以;结束,但是不写;也没问题,但是鉴于习惯,还是加上;.
var sum = a + b // 即使没有分号也是有效的语句——不推荐
var diff = a - b; // 有效的语句——推荐
②当代码块中只有一条语句的时候可以不写{},但是推荐写,因为这样可以使结构明确
if (test)
alert(test); // 有效但容易出错,不要使用
if (test){ // 推荐使用
alert(test);
}
二.关键字和保留字
关键字和保留字是JavaScript已经占用的字母组合,我们不要使用
关键字:
break do instanceof typeof
case else new var
catch finally return void
continue for switch while
debugger*
function this with
default if throw
delete in try
保留字:
abstract enum int short
boolean export interface static
byte extends long super
char final native synchronized
class float package throws
const goto private transient
debugger implements protected volatile
double import public
三.变量
定义一个变量可以直接定义也可以使用var关键字来定义
例如:
i=10;
var j=10;
说明:如果var k;这样也可以定义变量但是,这个的默认值是undefined.
使用var定义的变量是一个局部变量,有一定的作用域.但是不推荐直接定义遍历,因为直接定义的变量是全局变量,不利于维护.
四.数据类型
1.数据类型介绍
js的数据类型分别是:
①"undefined" ——如果这个值未定义
②"boolean" ——如果这个值是布尔值
③"string" ——如果这个值是字符串
④"number" ——如果这个值是数值
⑤"object" ——如果这个值是对象或 null
⑥"function" ——如果这个值是函数
如何查看他的类型:使用typeof函数即可查看
alert(typeof a);
2.Undefined类型
如果一个变量没有初始化,那么他的类型就是undefined.
例如:var a;此时a的数据类型就是undefined
注意:undefined只是没有初始化,不是没定义.
3.null类型
null是第二个只有一个值的数据类型,表示一个空对象指针,所有null属于object类型.
注意null与undefined有着区别.
4.Boolean类型
boolean有两个值,true和false.
使用 Boolean()函数可以把一个任意值转换为boolean值.
规则:
true | false | |
boolean | true | false |
string | 任意字符串 | "" |
number | 非0 | 0和nan |
object | 任意对象 | null |
undefined | n/a | undefined |
5.Number类型
js的number比较复杂
能表示整数也能表示浮点数.
6.String
toString()方法.
7.Object
var o = new Object();
Object 的每个实例都具有下列属性和方法。
constructor :保存着用于创建当前对象的函数。对于前面的例子而言,构造函数(constructor)
就是 Object() 。
hasOwnProperty(propertyName) :用于检查给定的属性在当前对象实例中(而不是在实例
的原型中)是否存在。其中,作为参数的属性名( propertyName )必须以字符串形式指定(例
如: o.hasOwnProperty("name") ) 。
isPrototypeOf(object) :用于检查传入的对象是否是传入对象的原型(第 5 章将讨论原
型) 。
propertyIsEnumerable(propertyName) :用于检查给定的属性是否能够使用 for-in 语句
(本章后面将会讨论)来枚举。与 hasOwnProperty() 方法一样,作为参数的属性名必须以字符
串形式指定。
toLocaleString() :返回对象的字符串表示,该字符串与执行环境的地区对应。
toString() :返回对象的字符串表示。
valueOf() :返回对象的字符串、数值或布尔值表示。通常与 toString() 方法的返回值
相同。
五.变量,作用域,内存
变量可能包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值指的是
简单的数据段,而引用类型值指那些可能由多个值构成的对象。
在将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值
5 种基本数据类型: Undefined 、 Null 、 Boolean 、 Number 和 String 。
在复制变量值的时候基本类型是直接复制,引用类型是引用.
所有在参数值传递的时候,如果传入的是引用类型的在修改了的情况下,会修改器对象的值.