首先javaScript是一门脚本语言
js的引入方式:
外链:<script src=""></script>
内链:<script></script>
内嵌:<div οnclick="alert(1)"></div>
语句结束需要标识符 ‘’ ; ‘’
变量:
1)字面意思:可以变化的量
2)书面意思:用于存储数据的容器
申明方法:var
能直接赋值的就直接赋值,不能直接赋值的就先赋一个初始值,初始值的内容是将来赋值的数据类型的基础值
命名:关键字和保留字不能作为变量名
组成:英文数字下滑线和$符号 数字不能作为变量名的首字母
匈牙利命名法:先数据类型(缩写),在写名字
驼峰命名法:
1)大驼峰:每个单词首字母全部大写
2)小驼峰:第一个单词首字母不大写,剩下的单词首字母大写
起名的时候先动词后名词
1获取get 2设置 set
数据类型:
基本类型:数字number、字符串string、布尔boolean、null、undefined
引用类型:数组array、 对象object、函数function
内存: 堆 -> 基本类型 -> 副本
栈 -> 引用类型 -> 指针
内存的泄露:变量使用后没有及时收回 会使其一直占用内存,造成野内存
后果:造成浏览器卡顿
内存的污染:变量的命名由于重名而发生冲突
后果:会出现一些bug
内存的溢出:变量存储数据的大小超出预先分配内存大小
后果:直接卡死
垃圾回收机制:把使用后的内存及时收回
标记清除: 在变量使用结束时 做标记 如 oBox = null;
引用计数:通过变量的使用次数来判断是否回收
数据类型的转化:
转数字对象:Number() 强类型、显示:强制转换成数字类型
弱类型、隐式转换:+ - * /
数字类型:非数字NaN,和任何数都不相等,包括它自己
非数字和任何数据类型计算时,除了 + 意外,其他运算结果都是NaN
字符串转数字对象的时候需注意: 科学计数法:2e3 十六进制 0x后只能跟英文最高跟f在高就NaN了
undefined 转数字 NAN
null 转数字 0
true 转数字 1
false 转数字 0
数字除以0 结果就是 Infinity 正无限
布尔值: true真, false假 Boolean()
一切非空的对象转换成布尔的时候都是true,空的对象都是false
注意:引用类型空的 也都能转换成布尔值
字符串: String()
不管什么类型转字符串都相当于在之前的基础上加了一会引号
空对象:
基本类型:数字0 字符’’ null undefined
引用类型转成布尔的时候都是true :数组[] 对象{}
运算符
1)算数运算符:+ - * / ++ – %
++或-- 是加一或减一; ++在后便是先赋值后计算 ,写在前边时先计算后赋值
% 求模、取余
var a = 5;
var b = --a;//b=4 a=4
var c = ++a;//c=5 a=5
var d = b--;//d=4 b=3
var e = --c;//e=4 c=4
// 4/4 - 3/3 + 4 - 3
console.log(++b - --c + d-- - --e,a,b,c,d,e);// 2 a=5 b=4 c=3 d=3 e=3
2)字符串运算符: + +=
“+” 起到连接作用 只要有字符串 +就变成连接符
3)逻辑运算符 " &&"与 " || "或 " !"非
4)赋值运算符 " =" “+=” “-=” " * = " “/=” “%=” “!=”
5)比较运算符: > < >= <= == ===
==比较值是否相等
===全等 除了比较值意外,还要比较数据类型
6)特殊运算符:typeof、instanceof、new、delete、this、, 、 ?。
语句
JavaScript的组成:
1.ECMA script核心语法、
2.DOM文档对象模型
3.BOM浏览器对象模型
with语句
document.write文档输出
alter() 弹窗 是同步单线程 阻塞模式
console.log() 控制台输出
console.time() 和 console.timeEnd() 网页加载时间
console。table() 以表格的形式输出
迭代语句
while(条件){符合条件就去做什么}
do{先做事}while(当符合条件)
两者区别 do while不管符合条件与否都先做一遍再说 while先判断条件是否符合 再去做事
for(起始条件,终止条件,条件范围){要做的事}
for in迭代语句 for(key in obj){key属性 obj[key]值}
判断语句
if(条件){要做的事}else{不符合条件要做的事}
switch (要判断的变量) {
case “星期一”:
要做的事情;
}
var str = '星期四';
switch (str) {
case "星期一":
console.log(1);
break;
case "星期二":
console.log(2);
break;
case "星期三":
console.log(2);
break;
default:
console.log(4);
}