美文网首页
JavaScript

JavaScript

作者: 大写的空气 | 来源:发表于2021-08-06 15:48 被阅读0次

    JavaScript采用双精度64位格式,因此并不存在整数console.log(3 / 2);值会得到1.5而不是1。通过Math.floor(3 / 2)向下取证得到1

    字符串

    "hello".length得到字符串长度5
    "hello".charAt(0)得到'h'
    "hello, world".replace("world", "mars")hello, mars
    如果一个字符串加上一个数字,其他数都会被转换为字符串
    "3" + 4 + 5; //"345" 3 + 4 + "5"; // "75",因此通过与空字符""相加能达到快速转化为字符串
    字符串比较:123 == "123" //true 123 === "123" //false

    let/const/var

    let只能在当前变量作用域内使用,也就是一对大括号内
    var当前文件任何位置都可赋值、可访问
    const与var区别是值不可更改

    Object/Array

    两种方法创建一个空对象var obj = new Object();var obj = {};
    可以通过链式或括号方式访问,如下结构

    var obj = {
      detail: {
        color: "orange"
      }
    }
    obj.detail.color
    obj["detail"]["color"]
    

    使用括号访问,解析器会进行优化,比如obj.for这样访问会因为for是系统预留关键字而失败,使用括号访问就没这问题. ES5后可以进行预留关键字作为属性访问


    数组的长度是数组中最大索引值加1的值

    var a = ["a", "b"];
    a[100] = "c"
    a.length;  //101
    a.push("1")  //追加元素
    
    
    方法名称    描述
    a.toString()    返回一个包含数组中所有元素的字符串,每个元素通过逗号分隔。
    a.toLocaleString()  根据宿主环境的区域设置,返回一个包含数组中所有元素的字符串,每个元素通过逗号分隔。
    a.concat(item1[, item2[, ...[, itemN]]])    返回一个数组,这个数组包含原先 a 和 item1、item2、……、itemN 中的所有元素。
    a.join(sep) 返回一个包含数组中所有元素的字符串,每个元素通过指定的 sep 分隔。
    a.pop() 删除并返回数组中的最后一个元素。
    a.push(item1, ..., itemN)   将 item1、item2、……、itemN 追加至数组 a。
    a.reverse() 数组逆序(会更改原数组 a)。
    a.shift()   删除并返回数组中第一个元素。
    a.slice(start, end) 返回子数组,以 a[start] 开头,以 a[end] 前一个元素结尾。
    a.sort([cmpfn]) 
    依据可选的比较函数 cmpfn 进行排序,如果未指定比较函数,则按字符顺序比较(即使被比较元素是数字)。
    
    a.splice(start, delcount[, item1[, ...[, itemN]]])  
    从 start 开始,删除 delcount 个元素,然后插入所有的 item。
    
    a.unshift(item1[, item2[, ...[, itemN]]])   
    将 item 插入数组头部,返回数组新长度(考虑 undefined)。
    

    函数

    function add(x, y) {
      var total = x + y;
      return total;
    }
    
    add();  //NaN   不能在undefined对象上进行加法操作
    add(2, 3, 4)//5   前2个值相加,4被忽略了
    

    也可以通过arguments来读取所有的被传入的参数,可将上面方法改写成

    function add() {
      var total = 0;
      for (var i = 0, i < arguments.length; i++){
        total += arguments[I];
      }
      return total;
    }
    add(2, 3, 4, 5);  //14
    

    或者

    function add(...args) {
      var total = 0;
      for (let value of args) {
        total += value
      }
      return
    }
    

    如果传入的是个数组,通过add.apply(null, [2, 3, 4, 5]);
    也可以使用匿名函数实现var add = function() {...}与上面函数效果一样
    通过原型链(prototype chain)实现runtime添加方法

    var s = "test";
    s.reversed();    //TypeError on line 1: s.reversed is not a function
    String.prototype.reversed = function() {
      var r = "";
      for (var i = this.length - 1; i >= 0; i--) {
        r += this[I];
      }
      return r;
    }
    s.reversed();    //tset
    

    相关文章

      网友评论

          本文标题:JavaScript

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