美文网首页
JS 基本数据类型

JS 基本数据类型

作者: 喵了个咪O_O | 来源:发表于2019-02-25 17:17 被阅读0次

    第二章基本数据类型

    1. 最大数 Infinity 无穷大

    JavaScript 所能处理的最大值是 1.7976931348623157e+308,而最小值为 5e-324。

    NAN - Not A Number typeof -> 'number'

    JavaScript语言中有五大基本数据类型:

    • 数字;
    • 字符串;
    • 布尔值;
    • undefined;
    • null。
    任何不属于基本类型的东西都属于对象。
    • 数字类型可以存储的数据包括:正负整数、浮点数、十六进制数与八进制数、指
      数以及特殊数值 NaN、Infinity、-Infinity。

    • 字符串类型存储的是一对引号之间的所有字符。

    • 布尔类型的值只有两个:true 和 false。

    • null类型的值只有一个:null。

    • undefined类型的值只有一个:undefined。

    • 绝大部分值在转换为布尔类型时都为 true,但以下 6 种 falsy 值除外:

      • "";
      • null;
      • undefined;
      • 0;
      • NaN;
      • false。

    第三章 函数

    1. URI (Uniform Resource Identifier 统一资源标识符)
      URL ( Uniform Resource Locator, 统一资源定位符)

    encodeURI()或 encodeURIComponent()。前者会返回一 个可用的 URL,而后者则会认为我们所传递的仅仅是 URL 的一部分。

    3.3 函数的作用于
    • “全局变量”指的是定义在所有函数之外的变量(也 就是定义在全局代码中的变量),
    • “局部变量”,所指的则是在某个函数中 定义的变量。
    3.3.1 变量的提升(hoisting)

    当JavaScript执行过程进入新的函数时, 函数内被声明的所有变量都会被移动(提升)到函数最开始的地方.
    注意: 被提升的只有变量的声明, 而与之相关的赋值操作 并不会被提升

    var a = 123;
    function f() {
        alert(a); //undefined
        var a = 1;
        alert(a); //1
    }
    
    等价于
    
    var a = 123;
    function f() {
        var a;    // var a = undefined;
        alert(a); 
        a = 1;
        alert(a);
    }
    
    3.4 函数也是一种数据
    1. 函数标识记法 (匿名函数)
    
    var f = function () {
        return 1;
    }
    
    • 特性:
    • 他们所包含的是代码
    • 他们是可执行的(可调用的);
    3.4.3 匿名函数的用法
    • 匿名函数作为参数传递给其他函数 (回调函数)
    • 执行某些一次性任务
    匿名回调函数的优势:
    1. 他可以让我们在不做命名的情况下传递函数(这意味着可以节省变量名的使用);
    2. 我们可以将一盒函数调用操作委托给另一个函数(这意味着可以节省一些代码编写工作);
    3. 他们也有助于提升性能
    
    3.4.4 即时函数
        1. 不会产生任何全局变量, 无法重复执行, 适合执行一些一次性任务或初始化任务
    
    ( function () {
        alert('foo');
      }
    )();
    
     (function () {
          // ...
     } () );
    
    3.4.5 内部(私有)函数
    优点: 
        1. 有助于我们确保全局名字空间的纯净性(这意味着命名冲突的机会很小);
        2. 确保私有性 - 这使我们可以选择只将一些必要的函数暴露给"外部世界", 而保留属于自己的函数, 使他们不为该应用的其他部分所用
    
    3.5 闭包
    3.5.3 getter setter
       var getValue, setValue;
       (function() {
            var secret = 0;
            getValue = function(){
               return secret;
            };
            setValue = function (v) {
               if (typeof v === "number") {
                    secret = v; 
               }
            }; 
       }());
       
       //输出
       getValue(); //0
       
       setValue(123);
       getValue(); //123
       
       setValue('111');
       getValue(); //123
    
    3.5.4 迭代器
    function setup(x) {
          var i = 0;
          return function(){
            return x[i++];
          };
    }
    
    var next = setup(['a', 'b', 'c']);
    
    next(); //a
    next(); //b
    next(); //c
    

    第四章

    16进制转10进制 
    parseInt('ff', 16) //255
    
    10进制 -> 16进制
    (255).toString(16) //'ff'
    
    4.2.7 Math

    Math对象不是函数对象不能用new创建, Math只是一个包含一系列方法和属性, 用于数学计算的全局内建对象

    • 数字常数π
      Math.PI;
      3.141592653589793

    • 2的平方根
      Math.SQRT2
      1.4142135623730951

    • 欧拉常数e
      Math.E
      2.718281828459045

    • 2的自然对数
      Math.LN2;
      0.6931471805599453

    • 10的自然对数
      Math.LN10
      2.302585092994046

    • 随机数
      Math.random() * 8 + 2
      (2到10之间的某个数)

    数字取整

    • floor(); 小于或等于指定值的最大整数
    • ceil(); 取大于或等于指定值的最小整数
    • round(); 取最靠近指定值的整数.
    1. 2的8次方
    Math.pow(2, 8);  //256
    
    2. 9的平方根;
    Math.sqrt(9);     //3 
    

    相关文章

      网友评论

          本文标题:JS 基本数据类型

          本文链接:https://www.haomeiwen.com/subject/sormjqtx.html