1. js:弱类型,动态类型,解释型的脚本语言.
2. 网景,布兰登艾奇,js和java没有关系,js的标准:ECMAscript.
3. js组成:ECMAscript + Bom + Dom.(BOM描述了与浏览器进行交互的方法和接口,DOM描述了处理网页内容的方法和接口).
4. script标签 type="text/css"(现已淘汰!) src属性.
5. alert();document.write(),document.writeln().
6. 实体符号:&entity_name;或者&entity_no;(详情见实体编码符号).
7. var 创建变量
8.变量名命名规则
驼峰命名法: var haveGoodGoods = '有好货';
帕斯卡命名法:var HaveGoodGoods = '有好货';
匈牙利命名法:var sHaveGoodGoods = '有好货';
My Style:var Have_Good_goods = '有好货';
9. 保留关键词.
10. 数据类型:字符串,数值,布尔,null,undefined,object,function.
11. 检测数据类型 typeof.
12.代码书写规范.
a) 代码缩进。
b) +、=等运算符两边的空格。
c) 语句结束以分号结尾。
d) 小括号的嵌套,要加空格。
e) 双引号、单引号的嵌套。
13.运算符
a) +,-,*,/,%,++,--(算数运算符)=、+=、-=、*=、/=、%=(赋值运算符)&& || !(逻辑运算符)? :;(三目运算符).
注:优先级为逻辑运算符的优先级大于其他.取余时,结果的正负只与第一个数的正负有关 !
b) 自增与自减.
eg: ++a a的前自增:变量本身先自增1,然后在将结果赋予当前位置
a++ a的后自增:变量的值先赋予当前位置,然后变量本身再自增1
14.数据类型转换
a)自主转换
Math.round()四舍五入;
parseInt()将字符串转换成整数;
Number()转换成数字类型;
String()转换成字符串类型,或者在前面加上''强制转换为字符串类型;
parseFloat()转换成浮点型带有小数点的数值.
b)强制自行转换:
eg:(隐世转换为字符串的场景)
alert(5 + '1')result = 51;
alert(null+'1')result = null1;
alert([] + '1')result = [object object];
(隐世转换成数值的场景)
alert('5' - 1)result = 4;
alert(null - 1)result -1;
alert(undefind - 1)result = MaN;(NaN = '不是一个数字:not a number');
(隐世转换布尔值得场景)
if(5){
alert('OK!');
};
(特殊的转换)
alert(null == undefined)result = true;
alert(null == false)result = false;
alert(undefined == false)result = false;
15.进制的转换.
二进制,八进制,十进制,十六进制.
eg:八进制转换为十进制过程:
从右往左依次*8的0123...次方;
十六进制转换为十进制的过程:;
从右往左依次*16的123...次方;
十进制转换八进制: 从上往下依次除.
16.==和===的区别
a) var a = 4,b = '4';
document.write(a == b); true
document.write(a === b); false
b) var a = {},b = {};
document.write(a == b); false
document.write(a == b); false
注: 对于string和number等基本类型,不同类型之间比较,==比较会将变量隐式转换成同一类型的值进行比较。而===如果类型不同,其结果就是不等。
如果是array和object等引用类型,==和===没有区别,如果两个的变量是同一个对象就为true,否则为false。
基本类型和引用类型进行比较,==会将引用类型转换成基本类型,再进行值比较。而===因为类型不同,结果为false。
17.isNaN()函数用来检测变量是不是NaN类型
18.对象内容由 键值对组成,键值可以是任意的变量,值可以使任意的数据类型.如果对象的属性时函数的话,我们撑他为方法.
19.数据类型的转换
eg: var obj = {
valueOf : function(){
return {};
}
toString : function(){
return {};
}
}
document.write(Number(obj));结果会报错.
注:执行顺序为先调用对象obj上的第一个行为,如果该行为返回的不是基本数据类型,则继续寻找obj对象的第二个方法.如果第二个方法还不是一个基本数据类型,则报错!