js学习笔记1
1.javascript程序是用unicode字符集编写的,2个字节
2.大小写敏感,也就是说javascript需要区分大小写
3.JavaScript会忽略程序中记号之间的空格,制表符,和换行符。
4.在JavaScript中,如果语句分别放置在不同的行中,就可以省去分号。但是省略分号不建议使用。
尽管理论上JavaScript允许在任意两个记号之间放置换行符,但是实际上JavaScript会自动插入分号,容易产生异常需要注意。
5.JavaScript注释://和/* */。
6.直接变量:就是程序中直接显示给出来的数据值。如:1,2,"hellworld"等
7.标志符:第一个字符必须是字母,下划线或美元符号,接下来可以是字母,数字,下划线,或美元符
8.JavaScript的保留自不能作为标志符
第三章,数据类型和值
1.JavaScript允许使用3种基本数据类型,数字,文本字符串和布尔值,还支持两种小数据类型null(空)和undefined(未定义)。
还支持复合数据类型对象(object),函数和数组
2.数字number是基本的数据类型,不区分整型数值和浮点型数值,JavaScript采用IEEE754标准定义的64位浮点格式表示数字。
3.16进制表示以0x或0X开头,8进制的直接量以数字0开头。
4.JavaScript中的字符串直接量是包含在单引号或双引号中的。它没有char这样的字符数据类型,要表示当个字符,必须使用长度为1的字符串。
5.字符串直接常量必须写在一行中,如果将他们放在2行中,可能会将它们截断。
6.html也使用单引号或双引号来界定字符串,因此在同时使用JavaScript和html时,最好对JavaScript采用一种引用方式,对html采用另一种引用方式。
7.确定字符串的长度使用length属性。“hello”.length
8.把数字转换成字符串,数字会在需要的时候自动的转换为字符串。或者使用var number1=String(number)或者使用var number2=number.toString().
9.把字符串转换为数字:当一个字符串用于数字环境中,它也会自动的转换为一个数字eg:var product=‘21‘*‘2‘;
也可以把一个字符串减去0就可以将其转换为一个数字 eg:‘32‘-0;注意,给一个字符串值增加0回导致字符串连接,而不是转换。
var num=Number(string_value)也可以把字符串转换为数字。也可以使用parseInt或parseFloat函数
10.如果一个布尔值用在数值环境中,true就转换为数字1,而false就转换为数字0.如果一个布尔值用在一个字符串环境中,true就转换为
’true‘,而false就转换为’false‘;如果一个数字用在一个本该布尔值的地方,那么如果这个数字是0或NaN,它就会转换为false,否则就转换为true。
如果字符串用在本该用布尔值的地方,那么空字符串就被转换为false,否则就换换为true。空值或为定义的值也会转换为false,而任何的非空对象,数组,或函数都转换为true。
11.函数:function 函数名(参数列表){函数体} 或者使用函数直接量来定义它var 变量名=function(参数列表){函数体}
12.对象是一个已命名的数据的集合,对象名.属性名 来使用访问对象的属性
13.如果一个函数值是存储在某个对象的属性中的,那么那个函数通常被称为方法,属性名也就变成了方法名。要调用一个对象的方法就要使用"."语法将函数值从对象中
提取出来,然后再使用"()"语法调用那个函数。
14.创建对象:var o=new Object();var now=new Date();一旦创建了属于自己的对象,那么就可以根据自己的意愿设计并使用它的属性:
var point=new Object();
point.x=2.3;
point.y=-4;
point.s="hello world";
15.对象直接量:创建对象并定义它的属性。对象直接量是由一个列表构成的,这个列表的元素是用冒号分隔的属性/值对,元素之间用逗号隔开,整个列表包含在花括号中。
var point={x:3.2,y:-4,s:‘hellow‘};
16.对象的转换:当一个非空对象用于布尔环境的时候,它转换为true。当一个对象用于字符串环境,javascript对象调用toString方法,并且使用该函数返回的字符串的值。
当一个对象用于数字环境,javascript首先调用该对象的valueOf方法,如果这个方法返回一个基本类型的值,这个值会被使用。然而,在大多数情况下,valueOf方法
返回的是对象自己。在这种情况下,javascript首先使用toStirng方法把对象转换为一个字符串,然后,在试图把该字符串转换为一个数字。
17.数组可以存放任何一种javascript数据类型,包括对其他数组,对象或函数的引用。
18.数组的创建:var a=new Array();
a[0]=2;
a[1]=‘hellow‘;
a[4]={x:1,y:2};
或者使用var a=new Array(1.2,‘hello‘,true,{x:2,y:5});
创建一个指定长度的数组:var a=new Array(10);值未初始化
19.数组直接常量:javascript定义了创建并初始化数组的直接常量语法。数组直接常量(或数组初始程序)是一个封闭在方括号中德序列,序列中德元素由逗号分隔。
括号内的值将被依次赋给数组元素,下标值从0开始。eg:
var a=[1.2,‘hello‘,true,{x:1,y:4}];
20.javascript的关键字null是一个特殊的值,它表示无值。null常常被看作对象类型的一个特殊值,即代表无对象的值。null是一个独一无二的值,有别于其他所有的值。
如果一个变量的值为null,那么就说明它的值不是有效的对象,数组,数字,字符串和布尔值。当null用于布尔环境,它转换为false。当它用于一个数字环境,它转换为0.
当它用于一个字符串环境,它转换为‘null‘
21.javascript还有一个特殊值undefined,在使用了一个并未声明的变量时,或者使用了一个已经声明但还没有赋值的变量时
,又或者使用了一个并不存在的对象属性时,返回的就是这个值。注意这个特殊的undefined值不同于null。虽然undefied和null值不同,
但是==运算符将两者看作相等。要区分null和undefined可以使用===或者typeof运算符。当为定义的值用于布尔环境,它会转换为false;
当它用于一个数字环境,它会转换为NaN。当它用于一个字符串环境,它会转换为‘undefined‘
22.
23.
24.
25.
26.
27.
28.
29.
第四章,变量
1.变量的声明:
var 变量名;或者var 变量名=初始值;或者var 变量名1,变量名2,遍历名3;
如果没有用var语句给一个变量指定初始值,那么虽然这个变量被声明了,但是在给它存入一个值之前,它的初始值就是undefined。
使用var语句多次声明同一个变量不仅是合法的,而且也不会造成任何错误。如果重复的声明有一个初始值,那么它担当的不过是一个赋值语句的角色。
注意:如果尝试给一个未用var声明的变量赋值,javascript会隐式声明该变量。当是要注意,隐式声明的变量总是被创建为全局变量,即使该变量只在一个函数体内使用。局部变量只在一个函数中
使用,要防止在创建局部变量时创建全局变量(或采用已有的全局变量),就必须在函数体内部使用var语句。无论是全局变量还是局部变量,最好都使用var语句创建。
2.变量有作用域
3.在javascript中,函数中声明的所有变量无论是在哪里声明的,在整个函数中它们都是由定义的。
虽然局部变量在整个函数体中都是有定义的,但是在执行var语句之前(声明之前),它是不会被初始化的。
4.数值,布尔值,null和undefined属于基本类型。对象,数组和函数属于引用类型。基本类型在内存中具有固定的大小。
5.当javascript的解释器开始运行时,它首先要做的事件之一就是在执行任何javascript代码之前,创建一个全局对象。这个对象的属性就是javascript程序的全局变量。
当声明一个javascript的全局变量时,实际上所做的是定义了那个全局对象的一个属性。局部变量是一个特殊的调用对象的属性。
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
第五章,表达式和运算符
1.==运算符(相等运算符)和===运算符(等同运算符)
2.不等运算符!=和不等同运算符!==
3.in运算符要求其左边的运算数是一个字符串,或可以被转换为字符串,右边的运算数是一个对象或数组。如果该运算符左边的值是其右边对象的一个属性名,它返回true。
4.instanceof运算符要求其左边的运算数是一个对象,右边的运算数是对象类的名字。如果该运算符左边的对象是右边类的一个实例,它
返回true,否则返回false。
5.尽管在jacascript中所有的数字都是浮点型的,但是位运算符却要求它的数字运算是整型的。它们操作的这些整型运算数使用的事32位的整数表示法,而不是等价的浮点表示法。
6.位运算符&,|,!,^,~,<<,>>
7.typeof是个一元运算符,放在一个运算数之前,这个运算数可以是任意类型的。它的返回值是一个字符串,该字符串说明了运算数的类型。
8.new运算符用来创建一个新对象,并调用构造函数初始化它。
9.delete运算符是个一元运算符,它将删除运算数所指的对象的属性,数组元素或变量。如果删除操作成功它将返回true,如果运算数不能被删除,它将返回false。
10.void是一个一元运算符,它可以出现在任何类型操作数之前。这个运算符的用途比较特殊,它总是舍弃运算数的值,然后返回undefined。
11.逗号运算符(,),逗号运算符先计算其左边的参数,再计算其右边的参数,然后返回右边的参数。
12.
13.
14.
15.
16.
17.
第六章,语句
1.switch中的case中匹配case表达式是用===等同运算符判定的,而不是用==相等运算符判定的,所以表达式必须在没有类型转换的情况下进行匹配。
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
第七章,对象和数组
1.创建对象最简单的方法是在javascript代码中加入一个对象直接常量。对象直接常量是用逗号分隔开的一对对的属性名和值的列表,包含在一个花括号之中,每个属性名可以是一个javascript标志符或一个字符串,
而每个属性值可以是一个常量或任意的javascript表达式。
var empty={};//an object with no properties.
var point={x:0,y:0};
var circle={x:point.x,y:point.y+1,radius:2};
var homer={
‘name‘:‘homer simpson‘,
‘age‘:23,
‘married‘:true
};
对象直接常量是这样的一个表达式:每次计算它的时候,它都创建并初始化一个新的不同的对象。这就是说,如果一个单个的对象直接常量
出现在重复调用的一个函数的循环体中的话,它可以创建很多个新的对象。
new运算符可以创建具体的一类对象。在new的后面跟着调用一个构造函数,它用来初始化对象的属性。
var a=new Array();
var d=new Date();
var r=new RegExp(‘javascript‘,‘i‘);
2.对象的属性:通常使用"."运算符来存取对象的属性的值。位于.运算符左边的值是想要访问其属性的对象。通常,它只包含了该对象的引用的变量名,但它可以是任何一个
结果为对象的javascript表达式。位于‘.‘运算符右边的值应该是属性名,它必须是一个标识符,而不能是一个字符串或表达式。
3.检查属性的存在性:in运算符可以用来测试一个属性的存在性。运算符的左边应该是属性的名字(字符串形式),而运算符符的右边应该是要被测试的对象。
4.删除属性:delete 对象名.属性名;
5.作为关联数组的对象
object.property等价于object[‘property‘];
6.object的属性和方法
constructor属性
toString()方法
toLocaleString()方法返回对象的一个本地化字符串
valueOf()方法它是当javascript需要把一个对象转换为某种基本数据类型,也就是一个数字而不是一个字符串的时候,才调用的方法。
hasOwnProperty()方法,如果对象用一个单独的字符串参数所指定的名字来本地定义一个非继承的属性,该方法就返回true。否则返回false。
propertylsEnumerable()方法,如果对象用一个单独的字符串参数所指定的名字来定义一个非继承的属性,并且如果这个属性
可以在一个for/in循环中枚举,该方法就返回true,否则返回false。 注意:一个对象的所有的用户定义的属性都是可以枚举的,不能枚举的
的属性通常都是继承 的属性。
isPrototypeOf()方法所属的对象是参数的原型对象,那么该方法就返回true。否则它就返回false
7.创建数组:
创建一个数组的最简单的方法就是使用数组直接常量这只是位于放括号中德以逗号分割开的数组元素的列表:
var empty=[];//an array with no elements
var primes=[2,3,4,5,];
var misc=[1.1,1,true,‘a‘];
var a=new Array();
var a=new Array(5,4,3,2,1,,‘test‘,true);
var a=new Array(10);
8.注意,数组的下标是大于等于0并小于2的32次方-1的整数,如果使用的数字太大,或使用了负数,浮点数(或布尔值,对象及其他值),javascript会将它转换为一个字符串,用生成
的字符串作为对象属性的名字,而不是作为数组下标。
9.数组的属性和方法:
join()方法,方法join()可以把一个数组的所有元素都转换成字符串,然后再把它们连接起来。可以指定转换的分割符。
reverse()将颠倒数组元素的顺序并返回颠倒后的数组。
sort()是在原数组上对数组元素进行排序,返回排序后的数组。如果调用sort()时不传递给它参数,那么它将按照字母顺序对数组元素进行排序。如果数组有未定义的元素,这些元素
将被放在数组的末尾。
concat()能创建并返回一个数组,这个数组包含了调用concat的原始数组的元素,其后跟随的是concat()的参数。
slice()方法返回的是指定数组的一个片段,或者说是子数组。
splice()方法是插入或删除数组元素的通用方法。可以把元素从数组中删除,也可以将新元素插入到数组中,或者同时执行着两种操作。
push和pop方法使我们可以像使用栈那样来使用数组。
unshift和shift方法的行为和push与pop非常相似,只不过它们是在数组的头部进行元素的插入和删除。
toString方法可以将数组的每个元素都转换成一个字符串
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
第八章,函数
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
第九章,类,构造函数和原型
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
第十章,模块和名字空间
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
第十一章,使用正则表达式的模式匹配
1.正则表达式直接常量被定义为包含在一对斜杠(/)之间的字符。或者使用new RegExp()构造函数。
2.字符类/[abc]/
\s匹配的是空格符,制表符和其他unicode空白符
\S匹配的是非unicode空白符的字符
{n,m} 匹配前一项至少n次,但是不能超过m次
{n,} 匹配前一项n次,或更多次
{n} 匹配前一项恰好n次
? 匹配前一项0次或一次,也就是说前一项是可选。等价于{0,1}
+ 匹配前一项1次或多次。等价于{1,}
* 匹配前一项0次或多次。等价于{0,}
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
第十二章,脚本话Java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
第十三章
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。