这里写目录标题
数据类型
基本数据类型:
String、Number、Boolean、Undefined、Null
引用数据类型:
function、object、array
数组方法
push:尾部添加
unshift:头部添加
pop:尾部删除
shift:头部删除
DOM 和 BOM
javascript由ECMAScript,DOM,BOM三部分组成
-
ECMAScript也是一种语言,也就是对规定的语法,操作,关键字,语句等的一个描述,javascript实现了ECMAScript
-
DOM是文档对象模型,包括了获取元素,修改样式,操作元素三方面内容,也是我们进行最多的操作,有很多兼容性写法
-
BOM是浏览器对象模型,包括浏览器的一些操作,window.onload,window.open等还有浏览器事件,监听窗口的改变onresize,监听滚动事件onscroll等
null和undefind的区别
null是表示一个空的对象,转为数值为0,undefind表示一个空的原始值,转为数值为NAN
undefind指本该有一个值,但却并有定义,null表示没有对象,不应该有值
split()和 join() 的区别
split():切割成数组形式
join():将数组转换成字符串
javascript 的 typeof 返回哪些数据类型
String Number Boolean Undefined Null Object
如何理解闭包
定义:
当一个函数的返回值是另一个函数,并且这个函数调用了其父函数内部的其他变量并在外部执行,就产生了闭包。
表现形式:
使函数外部能够调用函数内部的变量。
使用闭包的注意点:
(1)滥用闭包会造成内存泄漏:由于闭包会使得函数中的变量都保存在内存中,内存消耗很大,不能滥用,否则会造成网页性能问题。解决方法是在退出函数之前,将不使用的局部变量全部删除。
(2)会改变父函数内部变量的值。
GET和POST的区别
—参数传递方式不同:get请求会将参数跟在URL后进行传递,因为参数直接暴露,所以不能用来传递敏感信息,post请求将参数放在http消息的实体内容(request
body)中发送给服务器,这种传递方式对用户不可见
—数据传递大小不同:get方式传递的数据不能超过2KB,而post要大的多
—get请求只能进行URL编码,post请求支持多种编码方式
—安全问题:GET方式请求的数据会被浏览器缓存起来,别完整保留在浏览历史记录中,因此有安全问题
事件委托
利用事件冒泡的原理,让自己本身要触发的事件,让他的父元素代替执行
阻止事件冒泡和默认事件
阻止事件冒泡:
e. stopPropagation();//标准浏览器
event.canceBubble=true;//ie9 之前
阻止默认事件:
return false
e.preventDefault();
如何在 HTML 中添加事件
1、标签之中直接添加 οnclick=“fun()”;
2、JS 添加 Eobj.onclick = method;
3、现代事件 IE9 以前: obj.attachEvent(‘onclick’, method);
标准浏览器: obj.addEventListener(‘click’, method, false);
link 和 import 的区别
- link 是 XHTML 标签,除了加载 CSS 外,还可以定义 RSS 等其他事务;@import属于 CSS 范畴,只能加载
CSS。 - link 引用 CSS 时,在页面载入时同时加载;@import 需要页面网页完全载入以后加载。
- link 是 XHTML 标签,无兼容问题;@import 是在 CSS2.1 提出的,低版本的浏览器不支持。
- link 支持使用 Javascript 控制 DOM 去改变样式;而@import 不支持
js 数组类型中的常用方法
17.this对象的理解
this总是指向函数的直接调用者(而非间接调用者)
如果有new关键字,this指向new出来的那个对象
在事件中,this指向触发这个事件的对象,
特殊的是,IE中的attachEvent中的this总是指向全局对象Window。