1.js有哪些内置对象
Object是js所有对象的父对象。数据封装对象:Object,Array,Boolean,Number,String,其他对象Function,Arguments,Math,Date,RegExp,Error
2.js中基本数据类型和引用数据类型区别
基本数据类型:Undefined,Null,Boolean,Number,String
引用数据类型:Object,Array,Date,RegExp,Function
区别:①基本数据类型在内存中占据固定大小空间,因此被保存在栈内存中,②引用数据类型的值是对象,保存在堆内存中,包含引用类型的变量实际上并不是指向该对象本身,而是指向对象的指针。③从一个变量向另一个变量复制引用类型的值,复制的其实是一个指针,因此两个变量最终都指向同一个对象④确定一个值是哪个基本数据类型可用typeof,确定一个值的引用数据类型可用instanceof
3.js数组
//数组去重 var arr=[1,2,3,3,4]; var arr1=Array.from(new Set(arr)); console.log(arr1); //找出数组中重复出现的元素 function fn(arr) { var a = arr.sort(), b = []; for (var i in a) { if (a[i] == a[i - 1] && b.indexOf(a[i]) == -1) { console.log(a[i]) b.push(a[i]); } } return b }
4.http协议中,get和post区别
get传送数据长度有限,post没有限制。
get通过URL传递,在浏览器地址可见,post在报文中传递。
post用于表单提交,get用于简单数据查询,严格要求不是那么高的场景
5.@import和link标签区别
①从属关系区别
@import是css提供的语法规则,只有导入样式表的作用,link是HTML标签,不仅可以加载css文件,还可以定义rel,Rss连接属性
②加载顺序区别:link标签引入的css在加载页面时被同时加载,@import引入的css将在页面加载后再加载
③兼容性区别@import是css2.1才有的语法,故只有IE5+才能识别,link为HTML元素,没有兼容性问题
④DOM可控性区别:可通过js操作dom,插入link标签改变样式,由于dom方法是基于文档的,无法使用@import方式插入
6.h5新增标签
<header></header>
<footer></footer>
<nav></nav>
<hgroup></hgroup>
<section></section>
<article></article>
<aside></aside>
<mark></mark>
<progress></progress>
<address></address>
<datalist></datalist>
<figure></figure>
<figure></figure>
<figcaption></figcaption>
7.js事件流模型
事件冒泡:事件开始由最具体的元素接受,然后逐级向上传播
事件捕获:事件由最不具体的节点先接受,然后逐级向下,一直到最具体的
DOM事件流:3个阶段,事件捕获,目标阶段,事件冒泡