javaScript组成
ECMAScript:解释器、翻译,把人能看懂的语言解释成计算机能看懂的语言
DOM:Document Object Model 文本对象模型BOM:Browser Object Model浏览器对象模型
变量类型
typeof运算符
用法、返回值
常见类型:number、string、boolean、undefined、object、function
一个变量应该只存放一种类型的数据
数据类型转换
显式类型转换(强制类型转换)
parseInt()、 parseFloat()
NaN的意义和检测
隐式类型转换
==、===
减法
变量作用域(作用范围)
局部变量、全局变量
闭包:子函数可以使用父函数中的局部变量
命名规范及必要性
可读性——能看懂
规范性——符合规则
匈牙利命名法
类型前缀
首字母大写
类型 | 前缀 | 类型 | 实例 |
数组 | a | Array | aItems |
布尔值 | b | Boolean | bIsComplete |
浮点数 | f | Float | fPrice |
函数 | fn | Function | fnHandler |
整数 | i | Integer | iItemCount |
对象 | o | Object | oDiv1 |
正则表达式 | re | RegExp | reEmailCheck |
字符串 | s | String | sUserName |
变体变量 | v | Variant | vAnything |
实例:隔行变色、秒转时间
赋值:=、+=、-=、*=、/=、%=
关系:<、>、<=、>=、==、===、!=、!==
逻辑:&& 与、|| 或、! 否
实例:全选与反选
运算符优先级:括号
流程控制
判断:if、switch、?:
循环:while、for
跳出:break、continue
什么是真、什么是假:
真:true、非零数字、非空字符串、非空对象
假:false、数字零、空字符串、空对象、undefined
Json和数组
数组遍历用for(var i=0;i<array.length;i++)
Json遍历用for(var i in json)
开启定时器
setInterval 间隔型
setTimeout 延时型
停止定时器
clearInterval
clearTimeout
函数返回值:函数执行后return的值,可以是函数的执行结果,可以是其他,可以没有return
一个函数应该只返回一种类型的值
可变参(不定参):arguments
参数的个数可变,参数数组
例子1:求和
求所有参数的和
例子2:CSS函数
判断arguments.length
给参数取名,增强可读性
取非行间样式(不能用来设置):
obj.currentStyle[attr]
getComputedStyle(obj, false)[attr]
数组的使用
定义
var arr=[12, 5, 8, 9];
var arr=new Array(12, 5, 8, 9);
没有任何差别,[]的性能略高,因为代码短
数组的属性
length
既可以获取,又可以设置
例子:快速清空数组
数组使用原则:数组中应该只存一种类型的变量
数组的方法
添加
push(元素),从尾部添加
unshift(元素),从头部添加
删除
pop(),从尾部弹出
shift(),从头部弹出
排序
sort([比较函数]),排序一个数组
排序一个字符串数组
排序一个数字数组
转换类
concat(数组2),连接两个数组
join(分隔符)
用分隔符,组合数组元素,生成字符串
字符串split
插入替换删除
splice
splice(开始, 长度,元素…)
先删除,后插入
删除
splice(开始,长度)
插入
splice(开始, 0, 元素…)
替换