javascript基本概念

1:javascirpt是严格区分大小写的。

2:javascript(标识符)命名规则:第一个字符必须是一个字母、下划线、美元符号,其它字符可以是字母、下划线、美元符号或数字

3:ECMAScript标识符采用驼峰大小写格式,也就是第一个字母小写,剩下的每个单词的首字母大写。(但是没有谁强制要求这个格式)

4:

//单行注释

/*

*这是多行注释

*/

5:每条语句最好用一个分号结尾,但是也可以省略分号。

6:

if (test)

alert(test); //有效但容易出错,最好不要使用

if (test) {

alert(test);//推荐使用

}

7:var obj; 像这样未经过初始化的变量会保存一个特殊的值undefined

8:obj=100 这样虽然有效,但不推荐,这样相当于声明了一个全局变量

9:ECMAScript有5种简单数据类型:Undefined,Null,Boolean,Number和String

  1种复杂数据类型Object

10:typeof操作符 

var message = 'message';

typeof message

typeof(message)

11:Undefined类型只有一个值,即特殊的undefined

12:

var message;

alert(message)//undefined

alert(age);//报错啦

13:最好显示的初始化变量,这样的话当typeof操作符返回undefined值时,我们就知道被检测的变量没有被声明,而不是尚未初始化

  因为没有声明的变量用typeof操作符就会直接返回undefined

14要将一个值转换为其对应的Boolean值,可以调用转型函数Boolean()

15Number类型:八进制字面值的第一位必须是零,十六进制的字面值的前两位必须是Ox

  浮点娄可以这样:var floatNum = .1;但是不推荐这样使用

  如果浮点数小数点后面没有任何数字,那个这个数值就可以被作为整数值来保存,同样,如果浮点数本身就表示一个整数(如1.0)那么该值也会被转换为整数

14:Number.MAX_VALUE整数的最大值

  Number.MIN_VALUE整数的最小值

  如果计算得到一个超出javascript数值范围的值,那么这个数值自动转换为特殊的Infinity,如果某次返回正的或负的Infinity值,那么该值将无法继续参与下一次计算

  要想确定一个数值是不是有穷的,可以使用isFinite()函数

  访问Number.NEGATIVE_INFINITY和Number.POSITIVE_INFINITY可以得到正和负的Infinity的值,所以其实这两个属性分别保存着-Infinity和Infinity

15NaN特点:1任何涉及到NaN的操作都会返回NaN,2NaN与任何值都不相等,其中包括NaN本身 isNaN()这个函数接受一个参数,该参数可以是任何类型,而此函数会帮我们确定这个参数是否“不是数值”

16parseInt能够各种整数格式

Number(789)//不能转换789Yun

parseInt("789Yun");

parseInt("0xa313", 16);//有基数设置 也可以转换八进制

parseInt(""); //NaN

parseFloat只解析十进制值,因此它没有用第二个参数指定基数的用法

parseFloat解析字符串,如果此字符串包含一个可解析为整数的数(没有小数点或者小数点后面全部都是零) parseFloat()会返回整数

parseFloat("32.32")

17用双引号表示的字符串和用单引号表示的字符串完全相同,任何字符串长度都可以通过其length属性取得

  转换为字符串方法toString(),数值、布尔值、对象和字符串都有些方法,但null和undefined值没有此方法

  toString()如果是数值调用的话,还可以传递基数 eg:var a = 123; a.toString(16);

  在不知道值为null或undefined值时,可以使用转型函数String(),这个函数能够将任何类型的值转换为字符串,String()函数遵循转换规则:1如果值有toString()方法,则调用该方法(没有参数)返回相应的结果2如果值是null则返回"null"3如果值为undefined则返回"undefined"

18ECMAScript中的对象其实就是一组数据和功能的集合。在ECMAScript中,如果不能构造函数传递参数,则可以省略后面的那一对圆括号

如下所示

var obj = new Object();

var obj = new Object;

19Object的每个实例都具有下列属性和方法

  constructor保存着用于创建当前对象的函数

  hasOwnProperty(propertyName)用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在

  isPrototypeOf(object)用于检查传入的对象是否是另一个对象的原型

  propertyIsEnumerable(propertyName)用于检查给定的属性是否能够使用for-in语句

20with语句: 

with (location) {

var qs = search.substring(1);

var hostName = hostname;

var url = href;

}

21switch

var num = 25;

switch (true) {

case num < 0: alert('less than 0'); break;

case num >= 0 && num <= 10: alert('between 0 and 10'); break;

case num > 10 && num <= 20: alert('between 10 and 20'); break;

default: alert('more than 20');

}

switch语句在比较值时使用的是全等操作符,因此不会发生类型转换

22函数中return语句之后的任何代码都永远不会执行

 return 语句也可以不带有任何返回值,这种情况 下,函数在停止执行后将返回undefined值 

23通过arguments对象的length属性可以获得有多少个参数传递给了函数,没有传递值的命名参数将自动被赋予undefined值(ECMAScript中的所有参数传递的都是值,不可能通过引用传递参数)

24ECMAScript函数没有重载

25与其它语言不同,ECMAScript没有为整数和浮点数值分别定义不同的数据类型,Numer类型可用于表示所有数值

26ECMAScript中无须指定函数的返回值,因为任何ECMAScript函数都可以在任何时候返回任何值

27ECMAScript函数中函数参数是以一个包含零或多个值的数组的形式传递的

28可以向ECMAScript函数传递任意数量的参数,并且可以通过arguments对象来访问这些参数