前端零碎知识点(二)
程序员文章站
2022-05-10 11:51:23
...
一、数据类型判断
1、typeof
typeof返回一个数据类型的字符串,返回结果有number、boolean、string、object、undefined、function、symbol等7中类型,注意typeof不能判断null和array;
typeof 66; //number
typeof false; //boolean
typeof 'hello world'; //string
typeof undefined; //undefined
typeof new Function(); //function
typeof null; //object
typeof [1,2,3]; //object
typeof new Date(); //object
typeof new RegExp(); //object
2、instanceof
instanceof 是用来判断A是否为B的实例,表达式为:A instanceof B,如果A是B的实例,则返回true,否则返回false。注意instanceof不能检测null和undefined;下面的三种说法是一个意思:
- 用于检测构造函数的
prototype
属性是否出现在某个实例对象的原型链; - 用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性;
- 用来检测
constructor.prototype
是否存在于参数object
的原型链;
[1,2,3] instanceof Array; //true
{} instanceof Object; //true
new Date() instanceof Date; //true
new RegExp() instanceof RegExp; //true
null instanceof Null; //报错
undefined instanceof undefined; //报错
3、Object.prototype.toString.call() (个人推荐)
Object.prototype.toString.call()方法能获取准确的数据类型;
Object.prototype.toString.call('hello world'); //[object String]
Object.prototype.toString.call(12); //[object Number]
Object.prototype.toString.call([1,2,3]); //[object Array]
Object.prototype.toString.call(false); //[object Boolean]
Object.prototype.toString.call(undefined); //[object Undefined]
Object.prototype.toString.call(null); //[object Null]
Object.prototype.toString.call(new Function()); //[object Function]
Object.prototype.toString.call(new Date()); //[object Date]
Object.prototype.toString.call(new RegExp()); //[object RegExp]
//由此可以写一个准确判断数据类型的函数
function checkType(value) {
return Object.prototype.toString.call(value).slice(8,-1)
}
二、事件代理
由于事件会在冒泡阶段向上传播到父节点,因此可以把子节点的监听函数定义在父节点上,由父节点的监听函数统一处理多个子元素的事件。这种方法叫做事件的代理。
使用代理的优点:
1、代码简洁;
2、减少浏览器的内存占用;
三、BOM操作
BOM(浏览器对象模型)是浏览器本身的一些信息的设置和获取。
- window.screen对象:包含有关用户屏幕的信息
- window.location对象:用于获得当前页面的地址(URL),并把浏览器重定向到新的页面
- window.history对象:浏览历史的前进后退等
- window.navigator对象:常常用来获取浏览器信息、是否移动端访问等等
获取网址、协议、path、参数、hash
- location.href (同window.location.href) 获取网址
- location.protocol(同window.location.protocol) 获取协议
- location.pathname(同window.location.pathname) 获取path
- location.search(同window.location.search) 获取参数
- location.hash(同window.location.hash) 获取hash
获取UA navigator.userAgent
浏览器的前进、后退功能 history.back() history.forword()
上一篇: Android零碎知识点
下一篇: 前端基础练习(伪类标签)