1. JS 组成
1. ECMAScript - JS的核心语法
2. 内置对象 - BOM DOM
BOM :Browser Object Model 浏览器对象模型,主要提供
一组操作浏览器的方法
DOM :Document Object Model 文档对象模型,提供一组操作
文档的方法
3. JS 自定义对象
2. JS 引入
1. 元素绑定
将JS代码以事件的形式绑定在元素上。
事件 :用户行为触发的操作,(鼠标操作,键盘操作)
et :
6. JS 中的数据类型转换
1. 自动类型转换(隐式)
1. number + string
字符串使用+参与运算,都视为字符串的拼接,
不再是数学运算
转换规则 :将参与运算的非字符串类型,自动转换
为string类型,再进行字符串拼接,返回最终字符串
2. boolean + string
涉及字符串的+操作,都为字符串拼接
true + "10" // true10
3. number + boolean
将布尔值转换为number类型,再进行相加运算
true = 1;
false = 0;
2. 强制类型转换
1. 字符串转换number类型
1. Number(value)
可以将非数字类型转换为number
1. 数字字符串 "100" 可以使用该方法转换类型
2. 包含非数字的字符串 '100a',转换结果为NaN,
not a number,表示转换失败
3. 布尔类型转换number,对应 1和0
2. 从字符串中解析数字
1. parseInt(str)
1. 用来解析字符串中的整数,参数如果不是字符串,
会自动转换为字符串再进行解析
2. 只对字符串开头部分进行解析,如果首个字符
不是数字,直接返回NaN
2. parseFloat(str)
用来解析字符串中的整数和小数部分
2. 将非字符串类型转换为string类型
方法 : toString();
使用 :
var a = 100;
var res = a.toString();
7. 运算符
1. 算术运算符
+ - * / %
++ -- 自增和自减运算
1. + - * / %
1. 字符串+,表示拼接
2. 数字字符串参与数学运算(- * / %),
会自动转换数据类型,转成number后参与运算,
非数字字符串,转换number结果都为NaN,参与
数学运算结果也为NaN
3. 布尔类型的数据会自动转换为number 1或0,参与
数学运算
2. ++ --
1. 自增运算符,自减运算符,表示在自身基础上进行+1或
-1的操作
2. 只有变量能使用++ --,常量不能自增或自减
3. 单独使用++ / --与变量结合,做前缀或后缀没有区别,
都是对变量进行+1 或 -1操作
et :
var a = 10;
++a;
a++;
4. 如果与其他运算符结合,前缀和后缀会影响结果
et :
与赋值符号结合
var a = 10;
var r = a++; //先赋值,后自增
var r1 = ++a;//先自增,后赋值
练习 :
var n = 5;
var res = n++ + ++n + n++ + ++n + n;
解 :
var r = n++; //r = 5, n = 6
var r1 = ++n; //r1 = 7, n=7
var r2 = n++; //r2 = 7, n = 8
var r3 = ++n; //r3 = 9
var r4 = n; //r4 = 9
2. 关系运算符(比较运算符)
> >= < <= == != === !==
1. 数字与数字之间的比较
et :
var r = 10 > 5; //true
2. 字符串之间的比较
1. string 与 number 之间进行关系运算:
自动将string转换为number,再进行比较;
如果string无法转换为number,则进行NaN与number
的比较,结果永远为false
2. string 与 string 之间进行关系运算
进行每一位字符Unicode码值得比较,从前往后,
如果第一位字符可以比较出结果,就直接获取结果,
如果无法出结果,依次进行后一位字符的比较
3. 判断相等于恒等
== 判断相等,只进行值得比较,包含数据类型转换
=== 判断恒等,不允许数据类型转换,比较类型与值
判断相等时,会发生自动类型转换,最终结果相等,
即为 true
判断恒等,要求操作数数据类型一致,值相等,才
返回true
4. 判断不等和不恒等
!= 判断不等,两个操作数的值不相等时返回true
!== 判断不恒等,两个操作数类型与值之间只要有一项
不同,都返回true
3. 逻辑运算
逻辑与 :&&
逻辑或 :||
逻辑非 :!
逻辑运算与关系运算的结果都为布尔类型
1. 逻辑与
两个表达式同时为真,逻辑与运算的结果才为真。
条件1 条件2 结果
true true true
false true false
true false false
&& false false false
2. 逻辑或
两个条件,只要有一个为真,逻辑或的结果就为真
3. 逻辑非
非真即假 。对表达式的结果进行取非操作
1
"1"
练习 :
1. 用户输入年份 prompt()
var year = prompt(); //字符串
2. 判断是否为闰年
不能被100整除,但是可以被4整除
可以被400整除
除法 使用 / 表示 使用取模 % (取余)
Number(year);
逻辑或 ||
逻辑与 &&
if(条件表达式){
//条件成立时执行
}