跟着黑马学JavaScript20天速成笔记

一、JavaScript介绍

                JavaScript 是一种运行在客户端(浏览器)的编程语言

1、JavaScript 书写位置

1、内部 JavaScript

直接写在html文件里,用script标签包住[规范:script标签写在<body>上面]

<body> 
<script>
    alert("hellp")
  </script>
</body>

2、 外部 JavaScript(js文件多的时候)

代码写在以.js结尾的文件里建立并通过script标签,引入到html页面中;

<body>
  <!-- 通过src进入外部文件js -->
  <script src=".jx"></script>
</body>

3、 内联 JavaScript                

代码写在标签内部

<script>
 <button onclick="alert()"></button>
</script>

2、JavaScript 的注释 与结束符

<body>
<script>
 //单行注释;一次只能注释一行,可以多次注释  快捷键:ctrl + /
 /* 多行注释可以任意换行多少行都可以 快捷键:shift + alt + A */  
</script>
</body>

结束符:是;分号,可以省略

3、JavaScript的输入和输出语法

<body>
  <script>
    //输出语法
    //语法一
    document.write('要输出的内容')//向body内输出内容  
    //如果输出的内容写的是标签,也会被解析成网页元素,如
    document.write('<h1>要输出的内容</h1>')
    //语法二
    alert('要输出的内容')//作用:页面弹出警告对话框
    //语法三
    console.log("控制台")//控制台输出语法,程序员调试使用

  //输入语法
  prompt('想要输入的')//会弹出弹窗
  </script>
</body>

 执行顺序,按照html文档里进行顺序,但是alert跟prompt优先执行

二、JavaScript的变量

1、变量的介绍

变量就是计算机用来存储数据的“容器”;注意变量指的是容器不是数据

2、变量的使用

<body>
  <script>
  //  1、声明标量;
        // 语法:let 变量名
        /* 举例:*/  let a
      // 2、变量赋值:定义完一个变量后在变量名后加一个“=”
          /* 举例:*/ a=10
        // 3、声明变量时直接赋值
         /* 举例:*/ let b=100
        //  4、更新变量:变量赋值后,给他一个不同的值类更新他
         /* 举例:*/let age=18
                     age=19 //但是let不能多次声明一个变量
         // 5、声明多个变量:之间用,号隔开;但是不推荐,可读性比较低
           /* 举例:*/ let p=10,o=100
  </script>
</body>

3、变量命名规则

1、不能用关键字

2、只能用下划线、字母、数字、$组成,且数字不能开

3、字母严格区分大小写,如 Age 和 age 是不同的变量

4、变量-数组

  <script>
 1、声明数组
      let 数组名=[数组1,数组2,数组3,。。。,数组n]
      //数组的编号也就是索引或者下标从0开始,以此类推
2、取值语法
   数组名[下标]
   例如:let 数组名=[数组1,数组2,数组3,。。。,数组n]
       数组名[1]
       document.write(数组名[1])//也就是打印结果为‘数组2’
3、数组中数据的个数
  利用length来求数据的个数(长度); 例如:
      let 数组名=[数组1,数组2,数组3]
      console.log(数组名.length); //也就是三个
  </script>

三、JavaScript的常量

1、概念:利用 const 声明的变量称为“常量”
2、常量不允许重新赋值,声明的时候必须赋值(初始化),并且后续不能更改 

  <script>
     例如:const a=1
       a=3//此处就没用
  </script>

四、数字数据类型和算术运算符 

1、数字类型(Number)

正数、负数、小数等 统一称为 数字类型

  <script>
 NaN 代表一个计算错误。它是一个不正确的或者一个未定义的数学操作所得到的结果
    例如: console.log('你好'-2) //此处就会返回NaN
  任何对 NaN 的操作都会返回 NaN
    列如:console.log(NaN-2)  //返回NaN
  </script>

2、算术运算符

主要包括加+、减-、乘*、除/、取余(求模)%

3、字符串类型(string)

通过单引号( '') 、双引号( "")或反引号( ` ) 包裹的数据都叫字符串

  <script>
let a = '小明'  //使用单引号
let b = "小明"  //使用双引号
let c = `小明`  //使用反引号
let number ='123456'  //把数字变成了字符串
let  st ='' //空字符串
  </script>

注意事项: 

1、无论单引号或是双引号必须成对使用

2. 单引号/双引号可以互相嵌套,(口诀:外双内单,或者外单内双)

3. 必要时可以使用转义符 \,输出单引号或双引号

4、字符串拼接

数字相加,字符相连

  <script>
         document.write('我'+'你') //输出 我你
    let a='ni',b='我'
    document.write(a+b) //输出ni我
  </script>

5、模板字符串

用在拼接字符串和变量 (普通拼接太麻烦)

语法:外部用``反引号;用${}包住使用变量

 <script>
    let name = prompt("请输入您的姓名"), age = prompt("请输入您的年龄")
    document.write(`大家好,我是${name},我今年${age}岁`)
  </script>

6、布尔类型(boolean)

它有两个固定的值 true 和 false,表示肯定的数据用 true(真),表示否定的数据用 false(假)

7、未定义类型(undefined)

只声明变量,不赋值的情况下,变量的默认值为 undefined

 <script>
    let a //声明变量但是未赋值
    document.write(a) //输出undefined
  </script>

8、null(空类型)

 <script>
      null 仅仅是一个代表“无”、“空”或“值未知”的特殊
     let obj = null
    console.log(obj);  //null

  </script>

9、null 和 undefined 区别

undefined 表示没有赋值 

null 表示赋值了,但是内容为空

10、检测数据类型

通过 typeof 关键字检测数据类型

 语法:1. 作为运算符: typeof x

            2. 函数形式: typeof(x)

  <script>
let a = '1'
    console.log(typeof a);  //运行结果为string
  </script>

五、类型转换 

使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算

1、隐式转换

某些运算符被执行时,系统内部自动将数据类型进行转换

规则:+ 号两边只要有一个是字符串,都会把另外一个转成字符串

               除了+以外的算术运算符 比如 - * / 等都会把数据转成数字类型

                +号作为正号解析可以转换成数字型

                任何数据和字符串相加结果都是字符串

  <script>
    console.log('你好' + 2)//输出为   你好2
    console.log('11' + 11);//输出为   1111
    console.log('11' - 11);//输出为   0
    console.log('1' * 2);//输出为   2
    console.log(typeof '123');//输出为    string
    console.log(typeof +'123');//输出为   number
    console.log(+'11' + 11);//输出为      22
  </script>

2、显式转换 

自己写代码告诉系统该转成什么类型;第一个字母都要大写

转换为数字型 

方法:1、Number(数据)--如果字符串内容里有非数字,转换失败时结果为 NaN

           2、parseInt(数据)--只保留整数

           3、parseFloat(数据)--可以保留小数

  <script>
   let str ='1234'
   console.log(Number(str));//转换为数字类型
  </script>

4、为Boolean型转换

语法:
        Boolean(内容)
        console.log(Boolean( 3));//输出为ture
        console.log(Boolean( undefined));//输出为false
        记忆: ‘’、0、undefined、null、false、NaN 转换为布尔值后都是false, 其余则为 true

转换为字符型:  String(数据)

六、运算符 

1、赋值运算符

‘=’赋值将等号右边的值赋予给左边, 要求左边必须是一个容器

其他赋值:+=;-= Ø;*= ; /= ; %=;  相当于num=num+1等于num+=1

2、自增自减运算符

  自增:i++或者++i;自减:i--或者--i(通常使用在计数中)

   <script>
        1、   前置自增、自减
        let a = 1, b = 1
        console.log(++a + 2);//先给num加一再使用;结果为4
        console.log(--b + 2);//先num减去一再使用,结果为2
       2、 后置自增、自减
        let c = 1, d = 1
        console.log(c++ + 3);//先使用num再加一;结果为4
        console.log(d-- + 3);//先使用num再减一;结果为4
    </script>

注意:前置自增自减和后置自增独立使用时二者并没有差别!

面试题: 

 <script>
        let i = 1
        console.log(i++ + ++i + i);//结果为7
        /* 解释:i先使用一次,把使用完后的值给第二个i使用,再把使用完后的给第三个使用
                也就是i++是1,使用完后i=2,再把i=2给++i使用,使用后i=3,最后使用i+3
                式子也就是:1 +3 +3*/
    </script>

3、比较运算符 

 浮点数(小数)不参加比较,因为精度不好控制

字符串比较是比较的字符对应的ASCII码

注意: 

 

    <script>
        1、比较运算符有隐式转换, 把‘2’ 转换为2.双等号只判断值
        console.log(2 == '2');//答案是true
        2、=== 全等判断要求 值和 数据类型都一样才行
        console.log(2 === '2');//结果是false
        3、NaN 不等于任何人包括他自己
        console.log(NaN === NaN);//结果是false
三种区别:
     = 是赋值
     ==  是判断   只要求值相等,不要求数据类型一样即可返回true
     === 是全等  要求值和数据类型都一样返回的才是true
    </script>

4、逻辑运算符

5、逻辑中断

alert(11&&22)//都是真,返回最后一个真值
alert(11||22)//都是真,输出第一个真值
alert(false && 22) //第一个错误直接输出错误值
alert(false || 22)//第一个错了第二个对的,打印第二个对的

6、条件运算符

    <script>
        条件运算符“?”是一个三目;
        语法:  表达式1 ? 结果1: 结果二
        先分析表达式一的值,如果值为真,则执行结果一,如果为假则执行结果二
        let a = 10, b = 67, c
        c = a > b ? '你好' : '帅哥'
        alert(c)//运行结果为 帅哥
    </script>

7、运算符优先级 

七、判断语句

1、表达式和语句

 <script>
     表达式是可以被求值的代码
     如: x = 7 ;3 + 4;num++
     语句是一段可以执行的代码。
     如: prompt()  可以弹出一个输入框,还有 if语句    for 循环语句等等
    </script>

表达式:因为表达式可被求值,所以它可以写在赋值语句的右侧。

语句:而语句不一定有值,所以比如 alert() for和break 等语句就不能被用于赋值。

2、分支语句 

1、If分支语句

    <script>
        //除了0以外所有的数字都为真
        //所有的空字符串都为真‘ ’
        1、if语句的单分支使用语法
           if(条件){//括号内的条件为真时,才能进入大括号里执行代码
            满足条件要执行的代码
            }
        2、if语句的双分支使用语法
           if (条件) {
            满足条件要执行的代码
            } else {
            不满足if条件执行的代码
            }
        3、多分支if语法
            if (条件1)// 先判断条件1,若满足条件1就执行代码1,其他不执行
            {
                代码1
            }else if(条件2){// 若不满足则向下判断条件2,满足条件2执行代码2,其他不执行
                代码2
            }else if(条件n)
            {
                代码n
            }else{//若以上条件都不满足,执行else里的代码n
                当以上代码都不运行时,运行此代码
            }
    </script>

2、三元运算符 (三个操作数)

    <script>
 语法: 条件? 满足条件执行的代码:不满足条件执行的代码
    如:判断输入的数字的最大值
         let num1 = +prompt("请输入第一个数")
        let num2 = +prompt("请输入第二个数")
        let sum = num1 > num2 ? num1 : num2
        alert(`最大值为${sum}`)//${}表示占位引用
    </script>

3、switch语句 

  <script>
      语法://找到跟小括号里数据全等(===)的case值,并执行里面对应的代码
      switch (数据){//必须存在break不然不会结束,会打印所有
        case  值1:
            代码1
            break
        case 值2:
            代码2
         break
        default:
            代码n
            break
      }
    </script>

八、循环语句

1、while循环

  <script>
   语法:
   while(循环条件){
    要重复进行的代码(循环体)
   }
    </script>

三要素:1、变量起始值

                2. 终止条件(没有终止条件,循环会一直执行,造成死循环)

                3. 变量变化量(用自增或者自减)

  <script>
        let i = 1 //变量起始值
        while (i <= 10) {//终止条件(没有终止条件,循环会一直执行,造成死循环)
            document.write("要打印十次<br>")
            i++//变量变化量(用自增或者自减)
        }
    </script>

2、do—while循环 (不常用,基本不用)

区别于其他的循环主要特点是。意味着循环体将会无条件的执行一次

   <script>
     语法:
     do{
        执行语句
     }while (循环条件) 
    </script>

3、for循环

   <script>
        语法:
        for (变量初始值; 终止条件; 变量变化量) {
           循环体
        }
    </script>
</body>

4、 循环退出 

break:退出整个循环
continue:结束满足本次条件的循环,继续下次循环

5、无限循环 

1、while(true) 来构造“无限”循环,需要使用break退出循环。

2、for(;;) 也可以来构造“无限”循环,同样需要使用break退出循环。

6、for循环嵌套 

    <script>
    语法:
        for (外部声明记录循环次数的变量; 循环条件;变化值) {
           for(内部声明记录循环次数的变量; 循环条件;变化值){
            循环体
           }
            }
    </script>

九、数组 

1、数组的基本使用

1、声明语法

let 数组名 = [数据1,数据2,...数据n]
数组的顺序编号是从0开始的

2、取值语法

 数组名[下标]
        如:let name = ['22','33','55']
            name[0]//输出22

3、 数组长度

数组中数据的个数为数组的长度,通过数组的length属性获得
            如:name.length//name的数组的长度就为3

4、遍历数组 (重点)

 用循环把数组中每个元素都访问到

  <script>
    for(let i =0;i<数组名.length;i++){
        数组名[i]
    }
    例如:
        let nums = [10, 20, 30, 40, 50]
        for (let i = 0; i < nums.length; i++) {
            document.write(nums[i])//依次打印数组里面的内容
        }
    </script>

2、操作数组  

1、操作数组-修改

语法:
 <script>
        let arr = [1, 2]
        arr[0] = 3
        alert(arr)//3,2修改了元素
        arr[1] = arr[1] + "你好"
        alert(arr)//3,2你好
    </script>

2、 操作数组-新增

   <script>
     1、数组名.push() 将一个或多个元素添加到数组的末尾,并返回该数组的新长度
         语法:  arr.push(元素1,元素2,....,元素n)
        例如: let arr = ['red', 'green']
        arr.push('pingk')
        alert(arr);//打印red,green,pingk
        alert(arr.push('pingk'))//直接显示提添加后的数组长度
     2、数组名.unshift() 将一个或多个元素添加到数组的开头,并返回该数组的新长度
         语法: arr.unshift(元素1,元素2,....,元素n)
        let a = ['ll', 'o', 'world']
        a.unshift('he')
        alert(a)//he,ll,o,world
        alert( a.unshift('he'))//输出长度,输出添加后的新长度
    </script>

3 、操作数组-删除 

 <script>
       1、数组.pop()从数组中删除最后一个元素,并返回该元素的值
           语法: arr.pop()
         例如:
         let arr=['red','gren']
         arr.pop()//每次删除最后的一个
         alert(arr)//red
        2、数组.shift()从数组中删除第一个元素,并返回该元素的值
            语法:  arr.shift()
           例如:
           let arr=['red','gren']
                arr.shift()//每次开始的第一个
                alert(arr)//gren
        3、数组.splice() 删除指定元素
            语法:arr.splice(start(起始位置),deletecount(删除几个元素))
            例如:
            let arr=['red','gren','bule']
                arr.splice(1,2)//从下标1开始删除俩,也就是gren和bule被删除了
                alert(arr)//red
   </script>

4、数组排序 

  <script>
        数组.sort()
        语法:
        1、顺序
        arr.sort(function(a,b)){
            return a-b
        }
        2、降序
        arr.sort(function(a,b)){
            return b-a
        }
        例如:
        let arr = [1,2,4,5,3]
        arr.sort(function(a,b)){
            return b-a}
            alert(arr)//12345
    </script>

十、函数 

1、函数的使用

   1、函数使用语法:
         function 函数名(){
            函数体
         }
    2、函数的调用语法
         函数名()
    注意:声明(定义)的函数必须调用才会真正被执行,使用 () 调用函数

2、 函数传参

   1、声明语法:
       //声明语法中的参数列表是形参
        function 函数名(参数列表){
            函数体
        }
        2、调用语法:
         //调用语法中的参数列表是实参
            函数名(传递的参数列表)
        注意:1、多个函数传递参数时,括号里面要加逗号分隔两个参数
              2、 形参不给值,默认是undefined
              3、出现  undefined + undefined 结果NaN
              3、用户不输入实参,可以给 形参默认值,可以默认为 0, 这样程序更严谨
            例如
                function getsum(x=0,y=0){
                        alert(x+y)
                                    }
                    getsum()//结果时0,而不是NaN
                    getsum(1,2)//结果是3

3、函数的返回值 

 语法:
        return 数据
    1、 使用方法:例如:
        function getSum(x, y) {
            return x + y
        }
        let num = getSum(10, 20)
        document.write(num)
    2、返回多个值
       语法:   return [a, b]
       实例:      //以最大值最小值为案例
        function getSum(arr = []) {
            let max = arr[0]
            for (let i = 0; i < arr.length; i++) {
                if (arr[i] > max) { max = arr[i] }
            }//上述为最大值
                let min = arr[0]
            for (let i = 0; i < arr.length; i++) {
                if (arr[i] < min) { min = arr[i] }
            }//上述为最小值
            return [max, min]}
       使用多个返回值
        let newArr = getSum([1, 2, 2, 34, 4, 5, 6])
        document.write(newArr)//打印返回的整个数组
        document.write(`最大值为${newArr[0]},最小值为${newArr[1]}`)//打印所用到的数组数据信息

4、函数使用注意点

1、定义了两个相同的函数,后面的函数会覆盖前面的;如:
       function fn() { alert(2) }
       function fn() { alert(3) }//只会打印后面的3
2、参数不匹配
      function fn(x, y) { alert(x + y) }
//(1)实参多于形参,剩下的实参不参加运算
       fn(3, 4, 5)//只会计算前两个4+3=7
//(2)实参少于形参
      fn(3)  //结果就是 1 + undefined = NaN
3、 return 后面代码不会再被执行,会立即结束当前函数,所以 return 后面的数据不要换行写;如:
        function fn(x, y) {、
            return
            x + y
        }//输出的化结果为undefined

5、函数的作用域 

        分为全局变量和局部变量

    1、作用域 
     let num = 10 //全局变量
        function fn(){
            let str = 'nihao '//局部变量
    2、注意:如果函数内部,变量没有声明,直接赋值,也当全局变量看,但是强烈不推荐;例如:
        function fn(){
            num=10 //局部变量来看强烈不允许
                fn()
                console.log(num)}
    3、 形参可以看做是函数的局部变量;如:
             function fun(x,y){
                console.log(x)
            fun(1,2)
            console.log(x)  //此时使用x的化会报错因为局部变量不能够被使用
    4、访问原则:采取就近原则的方式来查找变量最终的值;例如:
            let num= 10
            function fn(){let num = 20
                function fun(){
                    letrnum = 30
                    console.log(num)} 
                    fun()}
                    fn()//输出结果为30

6、匿名函数 

1、函数表达式

声明语法:
        let fn = function(){//定义
            函数体
        }
    调用:
    fn()//函数表达式,必须先声明函数表达式,后调用
普通的定义可以使用在定义,但是匿名函数必须声明才能使用

2、立即执行函数

语法:
   (function () { alert(11) })();
 最前面的括号相当于声明,最后的括号相当于调用
        (function (形参) { 函数执行体 })(实参)
  如:
        (function (x, y) { alert(x > y) })(3, 4)

十一、对象 

1、什么是对象

是一种数据类型;是一种无序的数据集合{数组一有序数据集合}

2、对象的使用

1、对象声明语法:

let 对象名 = {}

2、 对象有属性和方法组成 

    let 对象名 = {
          属性名:属性值,
          方法名:函数
        }
如:
     let ob = {
          name = "你好",
          age = 14,
          gender = `女`
         }

3、对象的属性使用--增删改查 

        1、 属性-查
            对象名.属性
        2、属性-查的另外一种写法
            对象[‘属性’] 单引号和双引号都可以
        3、 属性-改
            对象名.属性 = 新值
        4、属性-增
            对象名.新属性 = 新值  
        5、属性-删
            delete 对象名.属性  

4、对象中的方法 

语法:
    let 对象名 = {
        方法名:函数
        }
        
 方法是由方法名和函数两部分构成,它们之间使用 : 分隔。例如:
       let person = {
        sayHi:function(){//此处是匿名函数
            //也可以添加形参和实参
            document.write("hihi")
        }        
       } 

3、遍历对象 

对象没有像数组一样的length属性,所以无法确定长度

方法:
    for(let k in 对象名){
        alert(对象名[属性值])//依次打印的话
    }
例如://定义对象
    let obj = {
        uname: `anmi`,
        age:18,
        sex: `男`
    }
    //遍历对象
    for(let k in obj){
        console.log(k);//打印出来的是 `uname` `age` `sex`
        //存的是字符串类型的属性
        console.log(obj[k]);
        
    }
一定记住: k 是获得对象的属性名, 对象名[k] 是获得 属性值

4、遍历数组对象 

  let students = [
         { name: '小明', age: 18, gender: '男', hometown: '河北省' },
         { name: '小红', age: 19, gender: '女', hometown: '河南省' },
         { name: '小刚', age: 17, gender: '男', hometown: '山西省' },
         { name: '小丽', age: 18, gender: '女', hometown: '山东省' }
        ]
        for (let i = 0; i < students.length; i++) {
            // console.log(students[i]) // 会打印每个对象
            console.log(students[i].name)//打印每个对象里面的属性
            //打印结果为: 小明 小红 小刚 小丽
        }

5、构造函数 

他创建方式多次创建多个对象

构造函数不需要 return,就可以返回结果

    语法:
        1、声明构造函数
            function 构造函数名(形参){
                this.属性 = 值
                this.方法 = function(){}
            }
        2、利用构造函数创建对象
            new 构造函数名(实参)
            可在前面赋值变量,变量名即对象名
            后面对象名.属性进行输出
        

实例:

//利用构造函数创建歌星 姓名,年龄 星座 性别 唱歌
        //1、声明构造函数
        function Star(uname, age, xingzuo, sex) {
            this.uname = uname//将上面的形参传入到此处给
            this.age = age
            this.xingzuo = xingzuo
            this.sex = sex
            this.sing = function (song) {
                console.log(song);
            }
        }
        //2、创建对象
        let zj = new Star(`张杰`, 18, `白羊座`, `男`);
        console.log(zj);//打印歌星张杰信息全部
        //3、查看对象属性,访问对象属性
        console.log(zj.uname);//张杰
        //4、创建第二个歌星
        let zjl = new Star(`周杰伦`, 18, `摩羯座`, `男`)
        console.log(zjl);//打印歌星周杰伦信息全部
        //5、访问 调用对象方法
        zj.sing(`逆战`)//逆战
        zjl.sing(`夜曲`)//夜曲

6、 内置对象

1、Array数组型

       // Array数组对象
        // 一、实例属性 
//1、 Array.length 获取数组长度
        let arr = [1, 2, 3, 4];
        console.log(arr.length); //4
        // 二、实例方法
// 2、增 (修改原数组)
    //(1) Array.unshift(x)   向数组的开头添加一个或更多元素,并返回新的长度。
        let arr2 = [1, 2, 3, 4];
        console.log(arr2.unshift(0, 6));//6
        console.log(arr2);//[0,6,1,2,3,4]
    //(2)Array.push(x)      向数组的末尾添加一个或更多元素,并返回新的长度。
        let arr3 = [1, 2, 3, 4];
        console.log(arr3.push(0));//5
        console.log(arr3);//[1,2,3,4,0]

// 3、删 (修改原数组)
    //(1) Array.shift()               删除并返回数组的第一个元素。
        let arr4 = [1, 2, 3, 4];
        console.log(arr4.shift());//删除第一个元素为1,并返回删除的1
        console.log(arr4);//[2,3,4]
    //(2)Array.pop()                 删除数组的最后一个元素并返回删除的元素。
        let arr5 = [1, 2, 3, 4];
        console.log(arr5.pop());//删除最后一个元素为4,并返回删除的4
        console.log(arr5);//[1,2,3]
    //(3)Array.splice(x,y,z1,z2,z3)  从x位置开始删,删除y个,并在删除位置插入z,返回删除元素
        let arr6 = [1, 2, 3, 4];
        console.log(arr6.splice(0, 2, 1, 1));//从0位置开始删,删除2个,并在删除位置插入11,返回删除元素
        console.log(arr6);//[1,1,2,3]
// 4、改 (修改原数组)
    //(1)Array.reverse()  反转数组的元素顺序。
        let arr7 = [3, 4, 1, 2];
        console.log(arr7.reverse());//[2,1,4,3]
    //(2)Array.prototype.sort(compareFn)         对数组的元素进行排序
        let arr8 = [11, 32, 31, 24];
        console.log(arr8.sort());//[11,24,31,32]默认按照字母排序
        console.log(arr8.sort(function (a, b) {
            return b - a  //a-b 数字升序 b-a 数字降序
        }));// [32,31,24,11]
    //(3)Array.fill(value, start, end) 使用一个固定值来填充数组。前闭后开,依次把这之间填满value的数据
        let arr9 = [1, 2, 3, 4];
        console.log(arr9.fill(66, 0, 2));//在0-2这个下标位置之间填上66并覆盖原来的值
// 5、查
    // Array.indexOf(x)   搜索数组中的元素,并返回它所在的位置。找不到返回-1
        let arr10 = [1, 2, 3, 4, 5, 6];
        console.log(arr10.indexOf(6));//5
        console.log(arr10.indexOf(9));//-1
// 6、判
    // Array.includes(x)   判断一个数组是否包含一个指定的值。
        let arr11 = [1, 2, 3, 4, 5, 6];
        console.log(arr11.includes(3));//true
// 7、转
    //(1) Array.concat(x)    连接两个或更多的数组给新的数组,并返回结果
        let arr12 = [1, 2, 3, 4, 5, 6];
        let arr13 = [`你好`]
        console.log(arr12.concat(arr13));//[1, 2, 3, 4, 5, 6,`你好`]
    //(2) Array.join(x)      把数组的所有元素,根据字符串连接,返回一个字符串。
        let arr14 = [1, 2, 3, 4, 5, 6];
        console.log(arr14.join());//1,2,3,4,5,6 
        console.log(arr14.join(6));//{结果为16263646566}中的6就是在每个元素后面都加上6;且x值必须是数组里面的
    //(3) Array.toString()   把数组转换为字符串,并返回结果。
        let arr15 = [1, 2, 3, 4, 5, 6];
        console.log(arr15.toString());//1,2,3,4,5,6 

2、Number数字型

   // Number⭐
        let a = 2;
        let b = new Number(2);

        // 静态方法
        // Number.isInteger(x)   判断x是否是整数
        console.log(Number.isInteger(4));//true
        console.log(Number.isInteger(4.2));//false
        // 实例方法
    // 1、Number.toString(x) 数字按照x进制转字符串
        //                      该方法实现了,十进制 转 任意进制
        console.log(a.toString(2));//'1 0' 实现十进制转二进制
        console.log(a.toString(8));//'2' 实现十进制转二进制
        console.log(a.toString(16));//'2' 实现十进制转二进制


        // ⭐ 任意进制 转 任意进制
    // 2、任意进制 转 十进制  parseInt(输入想要转进制的前缀+想要转的数字)
        console.log(parseInt(0b1));//1   二进制的1转十进制
        console.log(parseInt(0x12));//18  十六进制的18转十进制
    //3、 十进制 转 任意进制  toString(直接输入想要转进制的数字)
        console.log(a.toString(2));//1 0 十进制的a转二进制
        console.log(a.toString(8));//2  十进制的a转八进制
        console.log(a.toString(16));//2 十进制的a转十六进制

3、Date时间型

       // Date 日期
        //  1 日期底层,是数字
        //  2 JS初始日期,1970-1-1
        //  3 精确度,毫秒, 专业术语: 时间戳
//创建时间对象
        let dt = new Date(Date.now())
        console.log(dt);//Wed Oct 16 2024 20:40:29 GMT+0800 (中国标准时间)
// 静态方法
// Date.now()            获取当前时间戳
// Date.parse(s)         将 字符串时间 转 时间戳

// 实例方法
    //1、 Date.getFullYear()    // 年
        console.log(dt.getFullYear());  //所在的年份 2024
    //2、 Date.getMonth()       // 月, 0 到 11 之间的整数值, 0为一月,1为二月
        console.log(dt.getMonth()); //所在的月份 9 也就是现在的十月
    //3、 Date.getDate()        // 日 16
        console.log(dt.getDate()); //所在的日 10
    //4、 Date.getHours()       // 时
        console.log(dt.getHours()); //所在的时刻 20
    //5、 Date.getMinutes()     // 分
        console.log(dt.getMinutes()); //所在的分钟 43 
    //6、 Date.getSeconds()     // 秒
        console.log(dt.getDate()); //所在的秒数 16
    //7、 Date.getTime()        // 返回从 1970 年 1 月 1 日至今的毫秒数。
        console.log(dt.getTime());//1729082692595
    //8、 Date.getDay()         // 星期几,0为周日,1为周一  ⭐⭐
        console.log(dt.getDay()) //所在的星期 3
    //9、 Date.toTimeString()          //00:54:33 GMT+0800 (中国标准时间)
        console.log(dt.toTimeString()); //当前的时间 20:46:34 GMT+0800 (中国标准时间)
    //10、 Date.toLocaleDateString()    //转换年月日为 yyyy/mm/dd
        console.log(dt.toLocaleDateString());//2024/10/16
    //11、 Date.toLocaleTimeString()    //转换时分钟秒数为 hh:mm:mm
        console.log(dt.toLocaleTimeString());//20:48:07
    //12、 Date.toLocaleString()        //同时转换当前 转换年月日为 yyyy/mm/dd和//转换时分钟秒数为 hh:mm:mm ⭐⭐
        console.log(dt.toLocaleString());//2024/10/16 20:49:04
    //13、 Date.toString()              //网页的 月 日 年 现在时间描述 GMT+0800 (中国标准时间)
        console.log(dt.toString());//Wed Oct 16 2024 20:49:55 GMT+0800 (中国标准时间)
    //14、 Date.toDateString()          //网页的 月 日 年
        console.log(dt.toDateString());//Wed Oct 16 2024 
    //15、 Date.toUTCString()           //网页的, 月 日 年 现在时间描述 GMT
        console.log(dt.toUTCString()); //Wed, 16 Oct 2024 12:51:41 GMT
    //16、 Date.toISOString()           
        console.log(dt.toISOString());// 2024-10-16T12:52:40.307Z
    //17、 Date.toJSON()                //2023-12-31T16:54:33.402Z
        console.log(dt.toJSON());//2024-10-16T12:53:10.936Z

4、String 字符串型 

        //String
        let s = "haloohello"
        let s1 = new String("haloo")
// 实例属性
    // String.prototype.length             // 返回 number, 计算字符串元素个数
        console.log(s.length);//10

// 实例方法

// 一、增
    // String.concat(x1,x2,x3)   // 返回 string, 字符串拼接
        console.log(s.concat("hello"));//haloohellohello
// 二、删
        let s3 = `hellohello`
    // 1、String.substring(x1,x2)   // 返回 string, 指定位置截取字符串,包含前不包含后
        console.log(s3.substring(4, 9));//ohell 从下标为4截取到下标为8的数据
        let r = `  hello  `
    // 2、String.trim()             // 返回 string, 去除两端空格
        console.log(r.trim());//hello
    //3、 String.trimEnd()          // 返回 string, 去除尾部空格
        console.log(r.trimEnd());//`  hello`
    // 4、String.trimStart()        // 返回 string, 去除首部空格
        console.log(r.trimStart());//`hello  `


//三、改
        let s4 = `heLLoh WOrd`
    // String.prototype.replace(x1,x2)     // 返回 string,查找x1替换成x2,只替换一次
        console.log(s4.replace(`h`, `h.`));//h.eLLoh WOrd 将发现的第一个h改为h,
    // String.replaceAll(x1,x2)  // 返回 string,查找x1替换成x2,全部替换
        console.log(s4.replaceAll(`h`, `h2`));//h2eLLoh2 WOrd 将全部的h改为h2,
    // String.toUpperCase()      // 返回 string, 全部转大写
        console.log(s4.toUpperCase());//HELLOH WORD
    // String.toLowerCase()      // 返回 string, 全部转小写
        console.log(s4.toLocaleLowerCase());//helloh word


//四、 查
        let s5 = `helloworld javascrip`
    // 1、String.charAt(x)          // 返回 string, 从0编号,返回指定位置的内容
        console.log(s5.charAt(4));//o  在下标为4的位置的元素是o
    // 2、String.charCodeAt(x)      // 返回 number, 从0编号,返回指定位置的内容的unicode编码
        console.log(s5.charCodeAt(`j`));//104
    // 3、String.indexOf(x)         // 返回 number, 查找指定元素第一次出现的位置,不支持正则
        console.log(s5.indexOf(`s`));//15
    //4、String.search(x)          // 返回 number, 查找指定元素第一次出现的位置,支持正则,找不到-1
        console.log(s5.search(`s`));//15
        console.log(s5.search(`q`));//-1
    // 5、String.toString()         // 返回 string, 转string
        console.log(s5.toString());//helloworld javascrip
    //6、 String.valueOf()          // 返回 string, 返回自己的值
        console.log(s5.valueOf()); //helloworld javascrip
// 五、判
        let s6 = `hello world j`
    //1、 String.includes(x)        // 返回 boolean, 判断是否包含指定的字符串
        console.log(s6.includes(`world`));//true
    // 2、String.startsWith(x)      // 返回 boolean, 判断是否以指定字符串开头
        console.log(s6.startsWith(`h`));//true
        console.log(s6.startsWith(`j`));//false
    // 3、String.endsWith(x)        // 返回 boolean, 判断是否以指定字符串结尾
        console.log(s6.endsWith(`j`));//true
        console.log(s6.endsWith(`h`));//false

//六、  转
        let s7 = `44,55`
    // 1、String.split(x)           // 返回 string[], 根据指定元素分割
        console.log(s7.split(`,`));//[`44`,`55`] 以,号隔开创建数组,且逗号必须存在于字符串
    //2、String.match(RegExp)      // 返回 正则匹配数组

5、⭐ match 数学型

6、内置对象-生成任意范围随机数

Math.random() 随机数函数, 返回一个0 - 1之间,并且包括0不包括1的随机小数 [0, 1)

1、生成N-M之间的随机数(带小数)
	Math.floor(Math.random() * (M - N + 1)) + N
2、生成N-M之间的随机数(整数)
	Math.floor( Math.random()*(M - N + 1) + N
3、可以进行函数封装使用随机数
 	function getRandom(N, M) {
   		return Math.floor(Math.random() * (M - N + 1) + N)
       		}
	document.write(getRandom(100, 200) + `<br>`)//生成100-200的随机数

  

                    

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值