zoukankan      html  css  js  c++  java
  • 零散知识点总结(持续更新……)

        这篇博客用于记录平时学习中遇到的零散的知识点,它们不适于单独写一篇长博客,在这里记录下来一是为了增强记忆,二是为了方便复习总结。这篇博客会持续更新。。。

    一、JS数据类型及类型判断

    1. JS数据类型

    JS共有6种数据类型,其中5种基本数据类型,分别是:Undefined, Null, String, Number, Boolean, 还有一种复杂数据类型:Object。

    JS中对象被称为引用类型的值,它是引用类型的一个实例。引用类型是一种数据结构,有时也被称为对象定义,它们描述的是一类对象所具有的属性和方法。 JS中大多数引用类型都是Object类型的实例,除此之外,JS的引用类型还包括:Array、Date、RegExp、Function,以及基本包装类型:Boolean、Number、String,当然还可以自定义类型。

    2. 类型判断

    JS中可以用typeof操作符来判断变量的数据类型,它会返回以下6种字符串:

    “undefiined”----- 如果这个值未定义;

    “boolean”----- 如果这个值是布尔值;

    “string”----- 如果这个值是字符串;

    “number”-----如果这个值是数字;

    “object”----- 如果这个值是对象或null;

    “function”----- 如果这个值是函数。

    对于引用类型的值,我们想要知道它具体是什么类型的对象,此时就要用到另一个操作符:instanceof。它的语法如下:

    result = variable instanceof constructor

    例如: alert(person instanceof Array);    //变量person是数组类型吗?是则返回true,不是则返回false。

    二、apply(), call()函数

    用于改变函数作用域。区别:第二个参数,apply传入参数数组:arguments或[arg1, arg2, arg3….],而call把每个参数独立起来:call(this, arg1, arg2, arg3….)

    当第一个参数传入null时,表示的全局作用域。

    三、向setTimeout() setInterval()中调用的函数传参数问题

    如:function a(arg1, arg2) {…};

    现要间歇调用函数a。

    如果这样写:setTimeout(a(arg1, arg2), 10000); 是有问题的。因为setTimeout()的第一个参数是函数名,一旦函数名后加了括号,js默认这是函数执行的结果,所以会执行错误,正确的写法是这样:

    setTimeout(function() {

    a(arg1, arg2);

    });

    四、element.style.left 和 element.offsetLeft 的区别

    如果element的父节点有定位(相对或绝对),则这两个值读出来是相同,不同的是offsetLeft属性只读,而left属性可读可写,并且offsetLeft的值是number类型,而left属性是字符串类型,即有单位。

    五、计算两个日期之间的时间差

    先根据这两个日期建立两个Date对象,然后用Date对象的getTime()函数相减,即可得到两个日期间隔的毫秒,然后通过数学计算可以转换成天、小时、分钟、秒等。

    六、 “==”符号的隐式转换

    JS中”==”号是等号操作符,“===”是全等操作符。它们的区别是前者在比较之前要进行类型的隐式转换,后者直接比较。隐式转换的顺序是:

    1. 如果比较双方有布尔值,则把布尔值转换成数字比较,false转换成0,true转换成1。

    2.如果比较双方一个是字符串,另一个是数字,则把字符串转换成数字比较。

    3.如果比较双方一个是对象,另一个不是,则对对象用valueof()方法,用得到的基本类型值按照前面两条比较。

    4.如果比较双方全是对象,则比较它们是不是指向同一个对象。

    5.null和undefined不进行类型转换,但是它们两个比较返回true

    6.如果比较双方有NaN,则结果为false。

  • 相关阅读:
    Linux机器学习软件配置
    安装linux14.04
    Navicat无法连接SqlServer数据库
    linux命令行安装teamviewer
    Ubuntu14.04+Dell 7060安装无线/有线网络驱动
    启动一个SpringBoot的maven项目
    HTML5新增特性
    HTML 表格|表单
    HTML 基础
    初识 wijmo-grid
  • 原文地址:https://www.cnblogs.com/kongxy/p/4535305.html
Copyright © 2011-2022 走看看