zoukankan      html  css  js  c++  java
  • javascript全局方法与变量

    1、encodeURI(URI)

      a、作用:是对统一资源标识符(URI)进行编码的方法;

      b、参数:是一个完整的URI;

      c、特点:不需要对保留字以及在URI中有特殊意思的字符进行编码。

        (1)、保留字符:; , / ? : @ & = + $

        (2)、非转义字符:字母 数字 - _ . ! ~ * ' ( )

        (3)、数学符号:#

    2、decodeURI(encodedURI)

      a、作用:解码由encodeURI或者类似方法编码的统一资源标识符(URI);

      b、参数:一个完整编码过的URI;

      c、特点:将已编码 URI 中所有能识别的转义序列转换成原字符,但不能解码那些不会被 encodeURI 编码的内容(例如 "#")。

    3、encodeURIComponent(str)

      a、作用:是对统一资源标识符(URI)组成部分进行编码的方法;

      b、参数:String.URI的组成部分;

      c、特点:转义除了字母、数字、(、)、.、!、~、*、'、-和_之外的所有字符。

    4、decodeURIComponent(encodedURI)

      a、作用:解码由encodeURIComponent或者类似方法编码的统一资源标识符(URI);

      b、参数:编码后的部分URI;

      c、特点:将已编码 URI 中所有能识别的转义序列转换成原字符。

    5、eval(str)

      a、作用:将传入的字符串当做javascript执行;

      b、参数:字符串,需要计算的表达式或者执行的语句;

      c、返回值:代码执行后的返回值,否则为undefined;

      d、特点:(1)、如果参数不是字符串,原封不动的返回;(2)、直接调用,使用的是当前作用域, 间接调用,使用的是全局作用域。

    eval(new String("2 + 2")); // 返回了包含"2 + 2"的字符串对象
    eval("2 + 2"); // returns 4
    function test() {
        var x = 2, y = 4;
        console.log(eval("x + y"));  // 直接调用,使用本地作用域,结果是 6
        var geval = eval;
        console.log(geval("x + y")); // 间接调用,使用全局作用域,throws ReferenceError 因为`x`未定义
    }

    6、isFinite(testVal):类似于Number.isFinite(testVal)

      a、作用:判断testVal是否为一个有限的值;

      b、参数:传入字符串,会转换成数字再判断。注意:Number.isFinite(testVal)不会转换类型。

      c、返回值:true/false;

    isFinite(Infinity);     // false
    isFinite(-Infinity); // false
    isFinite(0);         // true
    isFinite(2e64);      // true
    isFinite("0");        // true
    isFinite(NaN);       // false
    isFinite(null);        // true
    isFinite(undefined); // false
    isFinite(true);     // true
    isFinite(false);     // true
    
    Number.isFinite(Infinity);     // false
    Number.isFinite(-Infinity); // false
    Number.isFinite(0);         // true
    Number.isFinite(2e64);      // true
    Number.isFinite("0");        // false
    Number.isFinite(NaN);       // false
    Number.isFinite(null);        // false
    Number.isFinite(undefined); // false
    Number.isFinite(true);          // false
    Number.isFinite(false);     // false

    7、isNaN( testVal )

      a、作用:判断一个值是否是NaN,将参数强制转换成数字再进行判断。

      b、返回值:true/false

      c、特点:(1)、NaN不能通过==和===来判断,NaN == NaN 和 NaN === NaN 都返回false;(2)、算数运算得到无法表示或未定义的值时,为NaN;(3)、不能强制换行成数字时,为NaN;(4)、0除以0会返回NaN —— 但是其他数除以0则不会返回NaN。

    escape(),unescape():已经放弃使用。

      d、注意:通过Number.isNaN(x)来检测变量x是否是一个非数值将会是一种可靠的做法。然而,在缺少Number.isNaN函数的情况下, 通过表达式(x != x) 来检测变量x是否是NaN会更加可靠。

    isNaN = function(value) {
        Number.isNaN(Number(value));
    }
    
    isNaN(NaN);       // true
    isNaN(undefined); // true
    isNaN({});        // true
    isNaN(0 / 0);      // true
    isNaN(5 / 0);      // false
    isNaN(true);      // false
    isNaN(null);      // false
    isNaN(37);        // false
    isNaN("37");      // false: 可以被转换成数值37
    isNaN("37.37");   // false: 可以被转换成数值37.37
    isNaN("");        // false: 空字符串被转换成0
    isNaN(" ");       // false: 包含空格的字符串被转换成0
    isNaN(new Date());                // false
    isNaN(new Date().toString());     // true
    isNaN("blabla")   // true: "blabla"不能转换成数值
    
    //和全局函数 isNaN() 相比,该方法不会强制将参数转换成数字,只有在参数是真正的数字类型,且值为 NaN 的时候才会返回 true。
    Number.isNaN(NaN);       // true
    Number.isNaN(undefined); // false
    Number.isNaN({});        // false
    Number.isNaN(0 / 0);     // true
    Number.isNaN(5 / 0);     // false
    Number.isNaN(true);      // false
    Number.isNaN(null);      // false
    Number.isNaN(37);        // false
    Number.isNaN("37");      // false: 不可以被转换成数值37
    Number.isNaN("37.37");   // false: 不可以被转换成数值37.37
    Number.isNaN("");        // false: 不空字符串被转换成0
    Number.isNaN(" ");       // false: 不包含空格的字符串被转换成0
    Number.isNaN(new Date());                // false
    Number.isNaN(new Date().toString());     // false
    Number.isNaN("blabla")   // false: "blabla"不能转换成数值

     8、null 和 undefined

      a、null:javascript字面量,javascript原始值之一,表示空值,不是全局对象的属性

      b、undefined:javascript原始值之一,是javascript的原始数据类型,是全局对象的属性

    typeof null        // object (因为一些以前的原因而不是'null')
    typeof undefined   // undefined
    null === undefined // false
    null == undefined // true
    null === null // true
    null == null // true
    !null //true
    isNaN(1 + null) // false
    isNaN(1 + undefined) // true

    9、parseInt 和 parseFloat

      a、parseInt:返回一个整数

      b、parseFloat:返回一个浮点数

  • 相关阅读:
    js压缩上传图片
    理解clientWidth,offsetWidth,clientLeft,offsetLeft,clientX,offsetX,pageX,screenX
    图片转换成base64预览
    用mint ui去实现滚动选择日期并可以关闭拾取器
    CSS制作波浪线
    vue实现星级评价效果
    Intellij IDEA 安装lombok及使用详解
    Linux常用命令
    SpringBoot集成MyBatisPlus
    SpringBoot集成MyBatisPlus
  • 原文地址:https://www.cnblogs.com/ilovexiaoming/p/6838730.html
Copyright © 2011-2022 走看看