博客列表 >JS语法基础

JS语法基础

小星的博客
小星的博客原创
2019年09月01日 17:26:081085浏览
  1. javascript是最流行的,而且是唯一的写"前端脚本"的编程语言。

  2. JS主要有两部分组成:变量和函数。

  3. js数据类型分为二大类: 原始类型与引用类型;;js不允许自定义数据类型,因为js是动态的,可以模拟出任何类型,不需要自定义
    (2). 原始类型: String字符串;Number数值(不区分整数和浮点数);Boolean布尔;Undefined未定义;Null类型
    (3). 引用类型:[Object对象,;Array数组]重点掌握;Function函数; Date日期;RegExp正则; 包装对象...

  4. JS中:用户生函数,函数生对象,对象生万物。  一切皆对象。

  5. JS中函数分类:

    函数声明:函数声明自动提前:因为函数如此重要,所以函数声明会自动提升到代码最前面,不论在脚本的什么地方声明,都可以直接使用。外部声明的变量,函数内部可以使用;函数内部声明的变量,外部不能使用。

    函数表达式:函数表达式就是一个值:let fn = function(){ return 200; }

    匿名函数:匿名函数主要用于函数的传参。eg: [1,2,3,4].filter(function( item, index, array){ return item>3; })  返回[4]

    filter是一个数组过滤函数,会为每一个数组元素执行该方法,返回过滤后的数组;item必填,是当前数组元素的值,index是元素的索引,array是当前元素属于的数组对象。

    自执行函数:eg: ( function( a, b ){ return a+b; } )(20, 50): 直接就将20与50传参给了a和b。


  6.  js根本不在乎函数有没有参数,以及参数有多少,是什么类型;
     因为在内部是使用一个数组来接收这些参数,并使用对象 arguments 来访问这个数组。

    //声明
            function add() {
                var num = arguments.length
                switch (num) {
                    case 0:
                        return '至少要有一个参数'
                        break
                    case 1:
                        return arguments[0]
                        break
                    case 2:
                        return arguments [0]+arguments[1]
                        break
                    case 3:
                        return arguments[0]+arguments[1]+arguments[2]
                        break
                    default:
                        return '参数过多'
                }
            }
            //调用
            add() // '至少要有一个参数'
            add(100) // 100
            add(100,200)  // 300
            add(100,200,300) // 600
            add(100,200,300,400) // '参数过多'

    运行实例 »

    点击 "运行实例" 按钮查看在线实例

  7. 创建新数组
       (1):基于当前数组中的所有项,创建一个新数组: concat()
           var arr = [1,2,3]
           arr.concat(4,5)     // 返回5个元素的新数组:[1, 2, 3, 4, 5]
           arr.concat([6,7,8]) // 接受数组参数,这个数组会拆开,将每一个元素并入原数组中:[1, 2, 3, 6, 7, 8]
       (2).基于数组的开始与结束的位置来创建: slice() 单词本意: 切开
           slice(起始索引[,结束索引]),如省略结束索引,默认为后面全部数据
           var arr = [10,20,30,40,50]
           arr.slice(2)        // 从索引2开始,获取后面全部内容: [30, 40, 50]
           arr.slice(1,4)      // 从索引1开始,到索引4结束(不含索引4): [20, 30, 40]
       (3).向数组中间插入数据: splice(), 功能主要是: [删除,插入,替换]
           参数说明: splice(start,length,value...)
           1). 删除
           arr.splice(起始,删除数)
           var arr = [10,20,30,40,50]
           arr.splice(0,2)     // 从头部0,开始删除2个,返回删除的元素: [10, 20]

           2). 插入
           arr.splice(起始,0,要插入项)
           arr.splice(1,0,88,99) //第二个参数0,表示插入,插入的数据是第三个参数
           //本例是从第二个元素起,插入二个新元素:88,99:
           arr     // 查看当前数组: [30, 88, 99, 40, 50]

           3). 替换
           arr.splice(起始,删除数,要插入项)
           arr.splice(2,1,'dog','cat')     // 返回删除项: 99
           arr     // 查看数组: [30, 88, "dog", "cat", 40, 50]

  8. 数组的反转:arr.reverse()

    数组的排序:sort():

    var arr = [10,4,22,8,2]
    arr.sort()      // [10, 2, 22, 4, 8]:显然错误,因为sort()默认将元素视为字符串,'10'显然是小'2'
    //解决方案: sort()可接受一个回调参数,在回调函数中进行比较运算完成正确排序
    function compare(val1,val2){
      if (val1 < val2) {
         return -1
      } else if (val1 > val2) {
          return 1
      } else {
          return 0
      }
    }

    ***对于数值型元素的比较,这个回调函数可以进行简化:
    function compare(val1,val2) {
       return val - val2  //升序
    }

    arr.sort(compare)       // 输出正确结果:[2, 4, 8, 10, 22]
    //如果改为降序排列,只需要改变回调中的返回值即可
    function compare(val1, val2) {
       return val2-val1   //降序: 用第二个参数减去第一个参数即可
    }

    arr.sort(compare)   // 降序: [22, 10, 8, 4, 2]


上一条:黄昏下的人生下一条:常用函数封装
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议