欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

前端零碎知识点(二)

程序员文章站 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;下面的三种说法是一个意思:

  1. 用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链;
  2. 用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性;
  3. 用来检测 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()