【JavaScript知识点】预解析、作用域、数据类型、数组常用方法、字符串常用方法

1.预解析

因为是在所有代码执行之前进行解释,需要解释的内容有两个:

  • 声明式函数
    • 在内存中先声明有一个变量名是函数名,并且这个名字代表的内容是一个函数
  • var 关键字
    • 在内存中先声明有一个变量名

2.作用域:一个变量可以生效的范围,这个变量的使用范围就是作用域

  • 局部作用域

    • 局部作用域就是在全局作用域下面有开辟出来的一个相对小一些的作用域
    • 在局部作用域中定义的变量只能在这个局部作用域内部使用
    • JS 中只有函数能生成一个局部作用域,别的都不行
    • 每一个函数,都是一个局部作用域
  • 全局作用域

    • 全局作用域是最大的作用域
    • 在全局作用域中定义的变量可以在任何地方使用
    • 页面打开的时候,浏览器会自动给我们生成一个全局作用域 window
    • 这个作用域会一直存在,直到页面关闭就销毁了

3.作用域访问规则

  • 首先,在自己的作用域内部查找,如果有,就直接拿来使用
  • 作用域的查找机制只能是向上找,不能向下找

4.存储空间分成两种:栈和堆

  • 栈: 主要存储基本数据类型的内容
  • 堆: 主要存储复杂数据类型的内容
  • 复杂数据类型是地址之间的比较
  var obj = { name: 'Jack' }
  var obj2 = { name: 'Jack' }
  console.log(obj == obj2) // false
  • 因为我们创建了两个对象,那么就会在 堆空间 里面开辟两个存储空间存储数据(两个地址)
  • 虽然存储的内容是一样的,那么也是两个存储空间,两个地址
  • 复杂数据类型之间就是地址的比较,所以 objobj2 两个变量的地址不一样
  • 所以我们得到的就是 false

5.数据类型分为:基本数据类型和复杂数据类型

  • 基本数据类型: number / string / boolean / undefined / null
  • 复杂数据类型: object / function / array

6.冒泡排序和选择排序

  for (var j = 0; j < arr.length-1; j++) {
       for (var i = 0; i < arr.length-j-1; i++) {
         // 判断,如果数组中的当前一个比后一个大,那么两个交换一下位置
         if (arr[i] > arr[i + 1]) {
           var tmp = arr[i]
           arr[i] = arr[i + 1]
           arr[i + 1] = tmp
         }
       }
     }
       选择排序
       for (var j = 0; j < arr.length - 1; j++) {
         var minIndex = j

         for (var i = j + 1; i < arr.length; i++) {
           if (arr[i] < arr[minIndex]) {
             minIndex = i
           }
         }

         if (minIndex !== j) {
           var tmp = arr[minIndex]
           arr[minIndex] = arr[j]
           arr[j] = tmp
         }
       }

7.数组常用方法

  1. push-是用来在数组的末尾追加一个元素

var arr = [1, 2, 3]
var res=arr.push(4)//会改变原始数组
console.log(arr) // [1, 2, 3, 4]
console.log(res) //4

  1. pop-是用来删除数组末尾的一个元素

var arr = [1, 2, 3]
var res=arr.pop()//会改变原始数组
console.log(arr) // [1, 2]
console.loh(res)

  1. unshift-是在数组的最前面添加一个元素

var arr = [1, 2, 3]
arr.unshift(4)//会改变原始数组
console.log(arr) // [4, 1, 2, 3]

  1. shift-是删除数组最前面的一个元素

var arr = [1, 2, 3]
arr.shift()//会改变原始数组
console.log(arr) // [2, 3]

  1. splice(从哪一个索引位置开始,截取多少个,替换的新元素)-是截取数组中的某些内容,按照数组的索引来截取

var arr = [1, 2, 3, 4, 5]
arr.splice(1, 2)//会改变原始数组
console.log(arr) // [1, 4, 5]

  1. reverse-是用来反转数组使用的

var arr = [1, 2, 3]
arr.reverse()
console.log(arr) // [3, 2, 1]

  1. sort-是用来给数组排序的

var arr = [2, 3, 1]
arr.sort()//会改变原始数组
console.log(arr) // [1, 2, 3]

  1. concat-是把多个数组进行拼接

var arr = [1, 2, 3]
var newArr = arr.concat([4, 5, 6])//不会改变原始数组
console.log(arr) // [1, 2, 3]
console.log(newArr) // [1, 2, 3, 4, 5, 6]

  1. join-是把数组里面的每一项内容链接起来,变成一个字符串

var arr = [1, 2, 3]
var str = arr.join(‘-’) //不会改变原始数组
console.log(arr) // [1, 2, 3]
console.log(str) // 1-2-3

  1. indexOf-用来找到数组中某一项的索引

var arr = [1, 2, 3, 4, 5]
var index = arr.indexOf(3)
console.log(index) // 3 的下标为 2
如果你要找的内容在数组中没有,那么就会返回 -1

  1. forEach-是用来遍历数组的

var arr = [1, 2, 3]
arr.forEach(function (item, index, arr) {
// item 就是数组中的每一项
// index 就是数组的索引
// arr 就是原始数组
console.log('数组的第 ’ + index + ’ 项的值是 ’ + item + ‘,原始数组是’, arr)
})
数组的长度是多少,这个函数就会执行多少回

  1. map-和 forEach 类似,只不过可以对数组中的每一项进行操作,返回一个新的数组

var arr = [1, 2, 3]
// 使用 map 遍历数组
var newArr = arr.map(function (item, index, arr) {
// item 就是数组中的每一项
// index 就是数组的索引
// arr 就是原始数组
return item + 10
})
console.log(newArr) // [11, 12, 13]

  1. filter-把原始数组中满足条件的筛选出来,组成一个新的数组返回

var arr = [1, 2, 3]
var newArr = arr.filter(function (item, index, arr) {
// item 就是数组中的每一项
// index 就是数组的索引
// arr 就是原始数组
return item > 1
})
console.log(newArr) // [2, 3]

  1. reduce-叠加

var arr=[1,2,3,4,5]
var arr2=arr.reduce(function(prev,item){
return prev+item//prev 是上一次的 return 值
},0)//初始值为 0
console.log(arr2)

8.字符串常用方法

  1. charAt:返回索引对应的字符

var str = “Jack”;
var index = str.charAt(2);
console.log(index); // c

  1. charCodeAt:就是返回对应索引位置的 unicode 编码

var str = “Jack”;
var index = str.charCodeAt(0);
console.log(index); // 74

  1. toUpperCase() toLowerCase()转换大小写

var str = hello;
var upper = str.toUpperCase();
console.log(upper); // HELLO
var lower = upper.toLowerCase();
console.log(lower); // hello

  1. substr(开始索引,长度) substring(开始索引,结束索引) slice(开始索引,结束索引)
  2. replace 替换(正则表达式):替换某个字符 str.replace(“a”,“*”)
  3. split 分割:str.split(“|”)
  4. indexOf(lastIndexOf 从后面查)查找字符的下标

var str = “Jack”;
var index = str.indexOf(“J”);
console.log(index); // 0

  1. concat 连接字符串
  2. trim 去掉首尾空格

9.json 是一种轻量级的数据交换格式,把字符串转换成公用的模式

  • JSON 和 JS 对象互转
  1. 要实现从 JSON 字符串转换为 JS 对象,使用 JSON.parse() 方法:
var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}
  1. 要实现从 JS 对象转换为 JSON 字符串,使用 JSON.stringify() 方法:
var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}'

10.ES6 中引入了模板字符串

  1. 要创造一个模板字符串,只需要使用反引号``将字符串包起来,模板字符串中的变量用${变量名}替代即可
var a = 'o,';var b = 'd!'
console.log (`Hell${a}worl${b}`);
  1. 多行字符串:在模板字符串内,换行和空格是会保存并展示出来的
   var a = 'o,';var b = 'd!'
   console.log(`Hell${a}worl${b}`);
  1. 调用函数
   function string(){
   return "Hello!";
   }
   console.log(`${string()} world!`);

11.数字常用方法

  • Math.random() 这个方法是用来生成一个 0 ~ 1 之间的随机数
  • Math.round() 是将一个小数 四舍五入 变成一个整数
  • Math.abs() 是返回一个数字的 绝对值
  • Math.ceil() 是将一个小数 向上取整 得到的整数
  • Math.floor() 是将一个小数 向下取整 的到的整数
  • Math.max() 得到的是你传入的几个数字之中 最大 的那个数字
  • Math.min() 得到的是你传入的几个数字之中 最小 的那个数字
  • Math.PI 得到的是 π 的值,也就是 3.1415936...

12.将日期字符串格式化成指定内容

  • getFullYear() 方式是得到指定字符串中的哪一年
  • getMonth() 方法是得到指定字符串中的哪一个月份
  • getDate() 方法是得到指定字符串中的哪一天
  • getHours() 方法是得到指定字符串中的哪小时
  • getMinutes() 方法是得到指定字符串中的哪分钟
  • getSeconds() 方法是得到指定字符串中的哪秒钟
  • getDay() 方法是得到指定字符串当前日期是一周中的第几天(周日是 0,周六是 6)
  • getTime() 方法是得到执行时间到 格林威治时间 的毫秒数(时间戳

来源:千锋kerwin前端JS视频

  • 21
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 是的,除了使用 JavaScript 中的 .join() 方法,还可以使用以下方法数组转换为字符串: 1. 使用 toString() 方法: ``` let arr = [1, 2, 3]; let str = arr.toString(); console.log(str); // 输出 "1,2,3" ``` 2. 使用 Array.prototype.join() 方法: ``` let arr = [1, 2, 3]; let str = arr.join(); console.log(str); // 输出 "1,2,3" ``` 3. 使用 + 运算符: ``` let arr = [1, 2, 3]; let str = arr[0] + ',' + arr[1] + ',' + arr[2]; console.log(str); // 输出 "1,2,3" ``` 4. 使用模板字符串: ``` let arr = [1, 2, 3]; let str = `${arr[0]},${arr[1]},${arr[2]}`; console.log(str); // 输出 "1,2,3" ``` ### 回答2: 除了JavaScript中的.join()方法,还有其他方法数组转换为字符串。 1. toString()方法:将数组转换为由数组元素组成的字符串。例如:[1, 2, 3].toString() 将返回 "1,2,3"。 2. concat()方法:将数组的所有元素连接起来,并返回一个新的字符串。该方法不会改变原数组。例如:[1, 2, 3].concat().join('') 将返回 "123"。 3. reduce()方法:使用指定的回调函数对数组元素进行累加器操作,将数组转换为一个值。然后可以使用字符串拼接操作将该值转换为字符串。例如:[1, 2, 3].reduce((accumulator, currentValue) => accumulator + currentValue, '').toString() 将返回 "6"。 4. map()方法和join()方法的组合:使用map()方法数组的每个元素转为字符串,并返回一个新的数组。然后使用.join()方法将新数组转换为字符串。例如:[1, 2, 3].map(String).join('') 将返回 "123"。 这些方法都可以将数组转换为字符串,可以根据不同的需求选择合适的方法来使用。 ### 回答3: 除了JavaScript中的.join()方法数组转换为字符串,还有以下几种方法: 1. toString()方法:使用toString()方法可以将数组转换为以逗号分隔的字符串。例如: ```javascript let array = [1, 2, 3]; let str = array.toString(); console.log(str); // 输出:1,2,3 ``` 2. concat()方法:使用concat()方法可以将数组连接为一个字符串。例如: ```javascript let array = [1, 2, 3]; let str = array.concat().join(""); console.log(str); // 输出:123 ``` 3. reduce()方法:使用reduce()方法可以将数组中的每个元素合并为一个字符串。例如: ```javascript let array = [1, 2, 3]; let str = array.reduce((a, b) => a + b.toString(), ""); console.log(str); // 输出:123 ``` 4. map()方法 + join()方法:使用map()方法数组的每个元素进行处理,然后使用join()方法将处理后的元素连接为字符串。例如: ```javascript let array = [1, 2, 3]; let str = array.map(String).join(""); console.log(str); // 输出:123 ``` 总结:除了.join()方法,还可以使用.toString()方法、.concat()方法、.reduce()方法,或者结合.map()方法和.join()方法数组转换为字符串

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会举重的薯片

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值