JavaScript基础

目录

一、流程控制语句

1.if...else...

2.三目运算符

3.switch...case...

二、循环语句

1.for循环

2.while循环

3.do while 循环

4.for of 循环

5.for in 循环

6.forEach

7.map

8.filter

三、函数

四、内置对象

1.Array

2.String

3.Number

4.Math

5.Date

6.Function

7.Object

五、JS浏览器对象实例

1.Location 对象

2.History

3.navigator

4.screen

5.Window

总结

一、流程控制语句

1.if...else...

  if (条件) {
    /* 代码 */
  } else if (条件) { 
    /* 代码 */
  } else {
    /* 代码 */
  }

2.三目运算符

 条件 ? 结果1 : 结果2

3.switch...case...

  #示例1
      let score=55,text='';
      switch(true){
          case score>90:
          text='优秀';
          break;
          case score>60:
          text='良好';
          break;
          default:
          text='加油';
      }
      console.log(text);//加油
  #示例2
      let weekday=new Date().getDay()
      switch(weekday){
          case 0:
          content='今天是星期天';
          break;
          case 6:content='今天是星期六';
          break;
          case 4:content='今天很特殊';
          break;
          default:content='期待周末';
      }

case 后面是冒号,而执行代码和break返回的后面都是分号。

注意:if else与switch case的区别是switch case会生成一个跳转表来指示实际的case分支的地址;
if…else却需要遍历条件分支直到命中条件。

二、循环语句

1.for循环

for 语句主要用于执行确定执行次数的循环。

//基本语法:
for([初始值表达式];[条件表达式];[增量表达式]){

   循环体语句;

}

let sum = 0;

for(let i = 1; i <= 10;i++){   

    sum += i;

}

console.log("1~10的累加和sum=" + sum);

2.while循环

常用于只需根据条件执行循环而不需关心循环次数的情况。

while (条件) {
  /* 代码 */
}

//举栗子

let i=0,x='';
while (i < 5) {
 x=x+'这是数字'+i;
 i++
}
console.log(x);

3.do while 循环

 do  {
      /* 代码 */ 
  } while (条件)

//举栗子

 let i = 0,x = '';
 do {
    x = x + '这是数字' + i;i++
 }while (i < 3)
 console.log(x);//这是数字0  这是数字1  这是数字2

4.for of 循环

for-of 循环遍历的是值,主要针对于数组的遍历

 let arr = ['a', 'b', 'c', 'd']
 for (let value of arr) {
   console.log(value);//a b c d
 }

5.for in 循环

for...in循环遍历的是key,主要针对于对象的遍历

      let obj = {
          name: '奥特曼',
          age: 22,
          hobby: '打怪兽'
      }
      for (let key in obj) {
          console.log(key);//name  age  hobby
          console.log(obj[key]);//奥特曼 22 打怪兽
      }

6.forEach

forEach只用来操作数据,不返回值,且循环中途是无法停止的,会将所有成员遍历完。

        let arrObj = [{
            id: 1,
            name: '奥特曼'
        }, {
            id: 2,
            name: '小怪兽'
        }, {
            id: 3,
            name: '迪迦'
        }]
        arrObj.forEach((item, index, arr) => {
            console.log(arr) // arrObj
            console.log(index) // 0 1 2
            console.log(item.name) // 奥特曼 小怪兽 迪迦
        })

7.map

map方法将数组的所有成员依次传入参数函数,然后把每一次的执行结果组成一个新数组返回。循环中途是无法停止,会将所有成员遍历完。

let arr = [1,2,3,4,5]
let arr2 = arr.map((n)=>{
      return n+1
})
console.log(arr2) // [2,3,4,5,6]
console.log(arr) // [1,2,3,4,5]

8.filter

filter方法用于过滤数组成员,满足条件的成员组成一个新数组返回。它的参数是一个函数,所有数组成员依次执行该函数,返回结果为true的成员组成一个新数组返回。该方法不会改变原数组。

        let arrObj = [{
            id: 1,
            name: '奥特曼'
        }, {
            id: 2,
            name: '小怪兽'
        }, {
            id: 3,
            name: '迪迦'
        }]
        let arr2 = arrObj.filter((item, index, arr) => {
            return (item.name === '小怪兽')
        })
        console.log(arr2) // [{id:2,name:'小怪兽}]

三、函数

封装函数口诀:  ==复用封函数,变化设参数==

- 写法

  # 写法一:声明式函数
  function 函数名(形参1,形参2) {
      /* 代码 */
  }
  
  # 写法二: 函数表达式
  const 函数名 = function(形参1,形参2) {
      /* 代码 */
  }
  
  # 写法三: 箭头函数
  const 函数名 = (形参1,形参2) => {
      /* 代码 */
  }
  
  # 箭头函数注意事项:
   - 1. 如果代码只有一行,省略{},且必须省略return,会自动return
   - 2. 形参有且只有一个,可以省略()
   - 3. 没有arguments
   - 4. this指向上一层
   - 5. 不能使用new调用
  ```

- 调用

  # 1. 直接调用
  函数名()
  
  # 2. 对象方法调用
  对象.方法名()
  
  # 3. 回调函数
  setTimeout(() => {
      
  }, 2000)
  
  # 4. 自己调用自己
  (function () {
  })()
  
  # 5. 使用new调用
  new 函数名()
  
  # 6. 使用call() 和 apply()调用
  函数名.call() 或 函数名.apply()

- 参数

  - 形参: 占位 (注意:名字可以乱取,注意语义化)
  - 实参: 实际调用传入的参数

- 返回值

  - 不写return,默认返回 `undefined`
  - 返回啥,得到啥。

四、内置对象

1.Array

| 属性和方法  | 使用说明                                                     |
| ---------- | ------------------------------------------------------------ |
| length     | 获取数组的长度,也就是获取数组内元素的个数。|
| concat     | 连接数组和数组或者数组和元素,以返回值形式。|
| every      | 数组里每个元素都满足条件返回true,否则返回false,任意一个不符合就返回false,不再接着遍历。|
| filter     | 过滤,筛选出符合条件的元素,返回一个新的数组。|
| find       | 返回数组中第一个满足条件的元素的值,没有符合条件的返回undefined。|
| findIndex  | 返回数组中第一个满足条件的元素的索引,没有符合条件的返回-1。|
| flat       | 把多维数组拉平,参数代表被拉平的次数,参数可以使用infinity。|
| forEach    | 循环数组的元素,改变原数组。|
| includes   | 判断数组中是否包含某个元素,包含就返回true,否则返回false。|
| indexOf    | 返回数组中某个指定的元素的索引号(返回第一个符合条件的),没有找个就返回-1。|
| join       | 数组转字符串,元素可以通过指定的分隔符进行分隔。|
| map        | 创建⼀个新的数组,其中每⼀个元素由调⽤数组中的每⼀个元素执⾏提供的函数得来。 |
| pop        | 删除数组的最后一个元素。|
| push       | 向数组的最后添加元素。|
| reverse    | 颠倒数组中元素的排序。|
| shift      | 删除数组的第一个元素。|
| slice      | 截取数组,以返回值形式。|
| some       | 某一个元素满足条件就返回true,找到符合条件的就不继续遍历了。|
| sort       | 排序。|
| splice     | 删除、增加、修改数组元素。|
| unshift    | 向数组的开始位置添加元素。|

2.String

| 属性和方法  | 使用说明                                                     |
| ----------- | ------------------------------------------------------------ |
| length      | 获取字符串的长度                                             |
| charAt      | 返回指定索引号对应的字符                                     |
| charCodeAt  | 返回在指定的位置的字符的 Unicode 编码。                      |
| concat      | 连接字符串。                                                 |
| includes    | 查找字符串中是否包含指定的子字符串。                         |
| indexOf     | 检索字符串。                                                 |
| replace     | 在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 |
| slice       | 提取字符串的片断,并在新的字符串中返回被提取的部分。         |
| split       | 字符串转换为数组                                             |
| substr      | 从起始索引号提取字符串中指定数目的字符。                     |
| substring   | 提取字符串中两个指定的索引号之间的字符。                     |
| toUpperCase | 字符串转换为大写字母                                         |
| toLowerCase | 字符串转换为小写字母                                         |
| trim        | 去除字符串两边的空白                                         |

3.Number

| 属性和方法 | 说明                                                 |
| ---------- | ---------------------------------------------------- |
| toFixed    | 把数字转换为字符串,结果的小数点后有指定位数的数字: |

4.Math

| 属性和方法 | 说明                      |
| ---------- | ------------------------- |
| abs        | 返回绝对值                |
| ceil       | 对数向上取整              |
| floor      | 对数向下取整              |
| max        | 返回最大值                |
| min        | 返回最小值                |
| random     | 返回 0 ~ 1 之间的随机数。 |
| round      | 四舍五入                  |

5.Date

| 属性和方法  | 说明                                     |
| ----------- | ---------------------------------------- |
| getDate     | 返回天数(0-31)                         |
| getDay      | 返回星期几(0-6),0代表星期天,依次往后 |
| getFullYear | 返回年份(4位数)                        |
| getHours    | 返回小时(0-23)                         |
| getMinutes  | 返回分钟(0-59)                         |
| getMonth    | 返回月份(0-11),月份要加1              |
| getSeconds  | 返回秒数(0-59)                         |
| getTime     | 返回时间戳(毫秒值),从1970.1.1至今     |
# 代码示例
        let getDate = new Date() //2021/7/7 19:45
        let year = getDate.getFullYear() //年份2021
        let month = getDate.getMonth() //返回月份,现在是7月,返回6
        let day = getDate.getDate() //日期7
        let hour = getDate.getHours() //小时 19
        let minute = getDate.getMinutes() //分钟
        let second = getDate.getSeconds() //秒数
        let week = getDate.getDay() //返回星期,今天周三,返回数字3
        let tim = getDate.getTime() //返回1970.1.1至今的毫秒数

6.Function

| 属性和方法 | 说明                                                         |
| ---------- | ------------------------------------------------------------ |
| bind       | 会生成一个新函数,不会立即执行,除非调用                     |
| apply      | 调用函数,并且可以改变this指向,与call的区别是参数只能传数组 |
| call       | 调用函数,并且可以改变this指向                               |
| arguments  | 未知参数,不管传递了多少数据,都可以用arguments接收,是一个伪数组,可做循环 |


#使用语法
#bind
语法:函数名.bind(this指向的目标)
#apply
语法:函数名.apply(this的指向的目标,[参数1,参数2...])
#call
语法:函数名.call(this的指向的目标,参数1,参数2....)

7.Object

| 属性和方法 | 说明                                                         |
| ---------- | ------------------------------------------------------------ |
| assign     | 合并对象,对象的key是唯一的,如果出现相同的key,后面的会覆盖前面的 |
| keys       | 遍历对象的自有属性,返回的是一个数组,Object.keys(对象名)  |

五、JS浏览器对象实例

1.Location 对象

| 属性和方法 | 说明                                |
| ---------- | -----------------------------------|
| href       | 返回完整的URL                      |
| origin     |                                   |
| host       | 返回一个URL的主机名和端口           |
| hostname   | 返回URL的主机名                    |
| pathname   | 返回的URL路径名。                  |
| search     | 返回一个URL的查询部分(参数)       |
| hash       | 返回一个URL的锚部分                |
| port       | 返回一个URL服务器使用的端口号       |
| reload     | 重新载入当前文档,location.reload()|

2.History

| 属性和方法 | 说明                                                         |
| ---------- | ------------------------------------------------------------ |
| back()     | 加载 history 列表中的上一个 URL,history.back()              |
| forward()  | 加载 history 列表中的下一个 URL,history.forward()           |
| go()       | 加载 history 列表中的某个具体页面,history.go(),参数是数字或者字符串,-1上一个页面,1前进一个页面,0刷新 |

3.navigator

| 属性和方法 | 说明                                                         |
| ---------- | ------------------------------------------------------------ |
| language   |                                                              |
| userAgent  | 返回浏览器用于 HTTP 请求的用户代理头的值,navigator.userAgent |

4.screen

| 属性和方法 | 说明                            |
| ---------- | ------------------------------- |
| width      | 返回屏幕的总宽度,screen.width  |
| height     | 返回屏幕的总高度,screen.height |

5.Window

| 属性和方法  | 说明                                                         |
| ----------- | ------------------------------------------------------------ |
| alert       | 显示带有一条指定消息和一个 **确认** 按钮的警告框。           |
| setTimeout  | 超时调用,等待指定的时间执行一次操作,使用clearTimeout()来停止执行 |
| setInterval | 间歇调用,每隔指定的时间调用一次函数,使用 clearInterval() 来停止执行 |
| onload      |                                                              |
| onresize    |                                                              |
| onscroll    |                                                              |

 

总结

未完待续....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值