今天我写这篇文章,是因为被点名提问,好多东西虽然已经学过看过,但有没有真正的理解过???为了更好地学习,我写了这篇总结篇,当然此文只是文档。只是辅导作用。
有人说javascript很难,但是这是h5开发基础语言,让我们一起跨过这个坎.....
javascript --语言 :ECMAjavascript(语法)Dom和Bom组成
web开发程序执行流程 :http请求 解析url路径 请求服务器
http超文本传输协议
两种javascript注释语法 : // /* */
过多的javaScript注释会降低JavaScript的执行速度与加载速度,因此应在发布网站时,去掉多余的注
释。
一、数据类型:
1、任何涉及NaN的操作(例如NaN/10)都会返回NaN
2、NaN与任何值都不相等,包括NaN本身。 一旦在程序中出现:NaN。那么肯定进行了非法的运算操作。
null值表示一个空对象指针,所以当你使用typeof操作符检测null值时会返回”object”
typeof(null) //object
alert(typeof(null))//object
alert(typeof NaN)//number
alert(Number(true)) true 表示1 false 表示0
alert(parseInt("123.321blue")) //转换到出现无法转换的为止 blue /NAN
var a = 11,b = '22';
var c = a + b;
console.log(c)//33 当一个是数字类型一个是字符串 js引擎会默认进行非算法计算,利用运算符 "+" 这个特性,可以很方便的将Number转换成string
var a = 22,b = '11';
var c = a - b;
console.log(c)//11 与 "+" 相反,这里把b默认转为了数字型 11进行了算法计算,利用这个特性很方便的将string转为了Number
var i = 1; j = ++i;
console.log(j);
二、表达式 ,是通过把常量,变量,函数等通过运算逻辑的方式连接起来。
运算符常用到的有 :
算法运算符 一般是 + - * / %(膜,用来取余)
比较运算符 != == <= >= 一般用来判断
逻辑运算符 ! 取反 && 并存关系 两个为true才为true || 一个为true就是true
三元运算符 ? 是判断条件 : 前为true 后为false eg: 1<2 ? alert(1+“小于2”): alert(1+"
大于2")
void是一个操作符,没有返回值。用法格式 : void (0) 最常见的a href="#" 这种形式会整体刷新页
面,href="javascript:void(0)" 则不会
逗号运算符。
声明变量用一个var,逗号连接‘,’ 推荐这么写。
条件语句:
if :判断语句,经常能用到,让javascript程序选择性的执行语句。
switch 当只判断一条表达式时,首先使用switch。
for循环语句 很常用 ,用到递增 、递减。
return 返回值。
三、函数 : 提高了代码的重用性(复用性)
函数需要调用才能执行。
函数又有作用域。在函数外部是全局变量,任何地方都可以使用。反正局部变量,只能在函数里执行。
Math 对象:
Math.random() 返回0-1之间的随机数
随机数定义随机值 : Math.floor(Math.random()*(最大值-最小值+1)+最小值)
String: 处理文本的字符串类型
声明一个String
.charAt() 返回所在的字符
.charCodeAt() 返回所在的Unicode 编码
String.fromCharCode() 返回 Unicode 编码
.search() 返回与参数匹配的位置
.replace() 替换的字符串
.substring() 提取两个下标之间的字符 参数不能是负数 与slice()相似
.substr() 第一个是开始下标 第二个为长度
.match() 找到字符串内索引指定的值.split() 从指定地方分割成数组字符串
.concat() 连接两个或者多个字符串
var str=new String('lijiayang');
alert(str.search('jia'))
alert(str.substring(4))
四、数组:键值对
添加数据
var a=[];
a[0]='1';
a[1]='2';
也可以用a.push('3')
删除 delete arr[0]
pop() 删除最后一个元素
join() 替换分隔符
reverse() 元素顺序颠倒
sort() 元素进行排序
concat() 合并数组
slice() 截取数组
splice() 插入、删除、替换
unshift() 在头部添加元素
shift() 删除第一个元素
var a=[];
a[0]='1231';
a[1]='213';
console.log(a)
for/in循环 用在循环数组和json
五、Dom:HTML 文档中的所有内容都是节点(元素树)
DOM 节点关系 : 上级(parent) 子级(children) 同级(sibling)
1、parentNode 获取该节点的父节点
2、childNodes 获取该节点的子节点数组
3、firstChild 获取该节点的第一个子节点
4、lastChild 获取该节点的最后一个子节点
5、nextSibling 获取该节点的下一个兄弟元素
6、previousSibling 获取该节点的上一个兄弟元素
7、children 获取所有的子元素节点
appendChild() 创建新节点
createElement() //创建一个具体的元素
createTextNode() //创建一个文本节点
appendChild() 添加
removeChild()移除
replaceChild()替换
insertBefore()插入
cloneNode() 方法创建指定节点的精确拷贝
createAttribute() 创建新的 Attr 节点
offsetParent 只读属性 返回离当前元素最近的一个有定位属性的父节点offsetLeft 返回元素的X坐
标offsetTop 返回元素的Y坐标scrollHeight 过去滚动高度
scrollLeft 设置或获取可视窗口的左边之间的距离
scrollTop 设置或获取可视窗口的顶端之间的距离
Bom:
六、Window : 表示浏览器窗口
全局变量是 window 对象的属性。
全局函数是 window 对象的方法。 window时间函数:
setInterval()定时器
setTimeout () 一次性定时器
clearInteval() 清除定时器
clearTimeout() 清除一次性定时器
七、系统弹出框:
alert()、confirm()、prompt()
Location 对象:
location.hostname 返回当前 URL 的主机名。
location.pathname 返回当前 URL 的路径部分。
location.protocol 返回当前 URL 的协议。
location.href 返回完整的 URL。
八、事件流:
事件冒泡:
从最具体的元素向上传播叫做事件冒泡
事件捕获:
由document文档流到最具体的元素为止
事件委托:
把父元素的事件赋予子元素
事件绑定:
给元素添加事件
event对象:
Event 对象代表事件的状态 事件通常与函数结合使用 键盘按键的状态、鼠标的位置、鼠标按钮的状态
九、表单验证,登录信息一般都会用到验证:
用/javascript/ 在字符串前后分别添加一个斜杠 ^表示开始 $结束