js引入
type属性告诉浏览器是js代码可以省略但是不要写错
type属性值若是text/tpl禁止js运行,可以当作库存来用
解释型语言 var 数字类型浮点型
行为样式结构相分离
-
页面级别js 直接写
-
外部引入js文件
<script src="static/js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
- 注意内部不能内外部同时使用
- js基本语法
1.1 变量的声明
- 定义一个变量 var a; //变量的声明 从系统要个位置 但没有数据
- a = 100; //将100赋值给a
- var a = 100; 等于上面
- 想使用数据 document.write(a) //100 1.2 变量一次全声明(单一var模式)
- var a,b,c,d,e;
- a=100;
- b = 200;
- c = 300;
- d = 400;
- e = 500;
- 或者直接声明加赋值
- 注意,号隔开
1.3 变量常识
- var a = 10;
- a = 20;
- 变量被覆盖值为20
1.4 变量名称
- 字母数字下划线$起名字 不能以数字开头
- 不可以用关键字命名 有意义
- 保留字命名 未来可能用
1.5 起名字的时候注意写语义
1.6 变量之间运算顺序
- 运算大于赋值,右面计算完赋值给左边
1.7 数据类型
* 原始值 Number String Boolean underfined null 存在栈里
原始值会覆盖
* 引用值 arry object function date regexp 存在堆里
引用值不覆盖
引用值和原始值赋值不一样
不可改变的原始值,不可能在栈中改值 存进去就出不来了(只是改了关系变量名去掉了)
- 123 数字类型
- 字符串直接加“”,写里的内容是字符串
- boolean true 和 false var b= true; //true
- underfined 定义了但是未赋值
- null是占位(覆盖方法,空间原有的东西覆盖) 1.8 由值决定类型
- var a = 10 ;
- a = "abc" ;
- 由数字转换成字符串
1.9 每个语句后加分号,最好写,好处系统识别代码用分号,一个分号执行一句
2.0 开发规范 等号左右有空格
js错误
2.1 语法解析错误
只会影响本块的对于页面其他模块没事
- 解释型语言 大体扫描一下,执行0行代码
2.2 逻辑错误
只会影响本块的对于页面其他模块没事
- 逻辑错误 未声明 会执行代码,错误了就会终止
2.3 console控制台 调试js东西
1. 逻辑算数运算符
2.4 +号
- 数值
- 字符串连接
- 任何数据类型与字符串连接就是 字符串
- 自左向右运算,符合数学 var a = 1 + 1 + "a" + (1 + 1)// 2a2
2.5 - * /号
- 跟数学一样
2.6 0/0 值为 NaN
2.7 0在分母
- 1/0 值 infinity
- -1/0 值 -infinity
2.8 % 摩尔
- 5%2 值 1
- 5%1 值 0
2.9 ++ --
a= a+1 ----- a++
a= a-1 ----- a--
- a++ a++表达式值不变,a值+1
- ++a 表达式和值都+1
- 表达式遵循数学逻辑,自左向右
- var a+=10 a++ 10次
- var a+=10+1 右面向左计算
3.0 运算符
- += -= *= /= 同+=
- %=
- 1.1 var a = 10 a%=2 a=0
- 1.2 var a = 0 a%=2 0
2. 比较运算符
> <
- var a = 1>2 //false
- var a = 1<2 //true
- 除了数字 其他都是ASCII码比较 0~127
- A 65 a 72 0 48
- var a = "10" + "8" //false
- 先拿开头比较
== >= <=
- 左右两边的值是否相等
- infinity == infinity
- underfined == underfined
!=
- NaN != NaN
3. 逻辑运算符
&&
- var a=1&&2; //2
- 先看a=1 转换成布尔值是否为真,真的话看第二个表达式的值是不是真,若是真就是表达式的运算结果直接返回
- underfined , null,NaN,"", 0, false 转换成布尔值为false
- var a = 0 && 2 +2 ; //0
- var a = 1 && 0; // 0
- var a = 1 && 1; //1
- var a = 1 && false && 1; //false
- var a = 1 && 1 && 0; //0
- var a = 1+1 && 1-1; //0
- 短路语句
- if 替代
&
- 1&1 //1
- 1&2 //0
- 1&3 //0
- 01
- 11
- 01 //1
- 与运算1与1为1 1与0 为0 相同为1 不同为0
|| 用来写兼容
- 1 || 3 //1
- 0 || 3 //3
- 4 || 0 //4
- 0 || 4 //4
- 0 || false //false 返回最后一个
e 与event
div.onclick = function (e){
//非ie var event = e;
//ie window.event=e;
var event = e|| window.event
}
! 否
- 转换成布尔值取反
- var a = !123 //false
- var a = !"" //true
- var a = !!"" //false
三目运算符
a==b 返回一个等于
a!=b 返回一个不等于
a ==b?"等于"如果a等于b了,就返回一个等于。
a ==b?"等于":"不等于"
如果条件满足,就返回前面的。
如果条件不满足,就返回后面的。
结构: 条件?:满足条件的返回内容:不满足条件的返回什么内容;