Javascript 基本引用类型

思维导图

基本引用类型思维导图
Javascript基本引用类型思维导图

1:date的简单使用

let date = new Date() // 获取当前的时间 年月日时分秒

获取时间

  • getTime() // 返回日期的毫秒表示;与 valueOf()相同

  • getFullYear() // 返回 4 位数(即 2019 而不是 19)

  • getMonth() // 返回日期的(0 表示 1 月,11 表示 12 月)

  • getDate() // 返回日期中的(1~31)

  • getDay() // 返回日期中表示周几的数值(0 表示周日,6 表示周六)

  • getHours() // 返回日期中的(0~23)

查询年月日时分秒、毫秒、周几(周)

设置年,月,日

  • setTime(milliseconds) // 设置日期的毫秒表示,从而修改整个日期

  • setFullYear(year) // 设置日期的(year 必须是 4 位数)

  • setMonth(month) // 设置日期的(month 为大于 0 的数值,大于 11 加年)

  • setDate(date) // 设置日期中的(如果 date 大于该月天数,则加月)

  • setHours(hours) // 设置日期中的(如果 hours 大于 23,则加日)

设置年月日时分秒、毫秒

案例一:设置年

let date = new Date() date.setFullYear(2019) 
console.log(date) // Thu Aug 08 2019 15:48:10 GMT+0800 (China Standard Time)

案例二:获取年份和天数

let date1 = new Date(2019,1,1).getFullYear() 
console.log(date1) // 返回四位数年

let date4 = new Date(2019,6,8).getDate() 
console.log(date4) // 8 返回日期中的日(1~31)

2:正则表达式

语法:let expression = pattern/flags

pattern:可以是任何简单或复杂的正则表达式,包括字符类、限定符、 分组、向前查找和反向引用

flags:标记,每个正则表达式可以带零个或多个 flags(标记),用于控制正则表达式 的行为

标记内容:

  • g:全局模式,表示查找字符串的全部内容,而不是找到第一个匹配的内容就结束。

  • i:不区分大小写,表示在查找匹配时忽略 pattern 和字符串的大小写。

  • m:多行模式,表示查找到一行文本末尾时会继续查找。

  • y:粘附模式,表示只查找从 lastIndex 开始及之后的字符串。

  • u:Unicode 模式,启用 Unicode 匹配。

  • s:dotAll 模式,表示元字符.匹配任何字符(包括\n 或\r)。

案例:普通

let pattern1 = /at/g; // 匹配字符串中的所有"at"

let pattern2 = /[bc]at/i; // 匹配第一个"bat"或"cat",忽略大小写

元字符在正则表达式中需要转义:包括:( [ { \ ^ $ | ) ] } ? * + .

案例:转义

let pattern2 = /[bc]at/i; // 匹配第一个"[bc]at",忽略大小写

let pattern4 = /.at/gi; // 匹配所有".at",忽略大小写
方法:

exec() 返回一个数组,包含匹配的内容,位置,匹配对应的内容等 text() 返回一个boolean值,true和false,常用来作验证

知识点:

例如:

let text = "000-00-0000";
let pattern = /\d{3}-\d{2}-\d{4}/;
if (pattern.test(text)) {
  console.log("The pattern was matched.");
}

返回字面量表达式


let pattern = new RegExp("\\[bc\\]at","gi")  // 这个使用了转义字符
console.log(pattern) // /\[bc\]at/gi 

RegExp自有属性

let text = "同志们加油啊,努力干,挣大钱。";
let pattern = /(.)努力干/g;
console.log(RegExp.input)  // #toolbar-search-input
if(pattern.test(text)){
    console.log(RegExp.input)  // 同志们加油啊,努力干,挣大钱。
    console.log(RegExp.leftContext)  // 同志们加油啊
    console.log(RegExp.rightContext)  //  ,挣大钱。
    console.log(RegExp.lastMatch)  // ,努力干
    console.log(RegExp.lastParen)  // ,
}

RegExp 构造函数的所有属性都没有任何 We b 标准出处,因此不要在生产环境中使 用它们。

3:原始值包装类型

为了方便操作原始值,ECMAScript 提供了 3 种特殊的引用类型:Boolean、Number 和 String

typeof 操作符对原始值返回"boolean",对引用值返回object let number1 = false // 原始值

let Object1 = new Boolean(false) // object

理解原始布尔值和 Boolean 对象之间的区别非常重要,强烈建议永远不要使用后者

4:isInteger()方法与安全整数

ES6 新增了 Number.isInteger()方法,用于辨别一个数值是否保存为整数。有时候,小数位的 0 可能会让人误以为数值是一个浮点值:

console.log(Number.isInteger(10));    // true
console.log(Number.isInteger(10.00)); // true
console.log(Number.isInteger(10.01)); // false

5:string方法

5.1 不常用:

  • charAt() // 根据下标查找元素

  • charCodeAt() // 根据下标查找元素对应的码元字符编码

  • chartPointAt() // 根据下标查找对应的码点

  • formCharCode() 和 formCodePoint() 对应的关系,查找字符串

5.2 常用 操作方法:

concat() 拼接 建议使用“+”来代替

截取字符串

  • slice() 接受两个参数,第一个参数表示开始截取的下标,第二个参数表示截取字符串结束的位置,传入的参数为负数有所不同

  • substring() 接受两个参数,第一个参数表示开始截取的下标,第二个参数表示截取字符串结束的位置,传入的参数为负数有所不同

  • substr() 接受两个参数,第一个参数表示开始截取的下标,第二个参数表示返回的子字符串的数量,传入的参数为负数有所不同

5.3 获取下标

根据传入的字符串获取下标

  • indexOf() 从开头往后查找传入的元素下标

  • lastIndexOf() 从尾部往前查找元素的下标

5.4 查找元素是否存在,返回boolean

startsWith() 从下标0开始查找,第二个参数表示开始搜索的位置

endsWith() 从尾部开始查找

includes 第二个参数表示开始搜索的位置

5.5 去除字符串前后空格,返回字符串的副本,原字符串不受影响

trim() 去除字符串前后空格

trimLeft() 去除字符串起始位置的空格

trimRighe() 去除字符串尾部的空格

5.6 复制字符串

repeat()

  • 参数:接收一个整数,表示复制多少次

padStarts()

  • 参数1:表示复制的长度,不足以空格填充,长度小于等于元字符串长度,返回原字符串
  • 参数2(可选):填充的内容

padEnd()

  • 参数1:表示复制的长度,不足以空格填充,长度小于等于元字符串长度,返回原字符串
  • 参数2(可选):填充的内容

5.7 迭代与解构

iterator next() 字符串支持迭代,就可以在日常使用中使用解构方式,把字符串转为数组

5.8 search 查找元素位置,没有返回-1,有返回下标

这参数1:支持正则表达式

5.9 替换

replace()

参数1:需要替换的元素,如果是字符串,则只替换第一个查找到的;正则表达式的话,符合的就替换;

参数2:准备新的元素

6:Math

ECMASript提供了Math对象作为保存数学公式、信息和计算的地方,Math提供了一些辅助计算属性和方法;

获取数组中的最大值和最小值,使用解构方式

// 最大值
let arr = [2,4,6,26,8,9,1]
console.log(Math.max(...arr))  // 26
​
// 最小值
let arr = [2,4,6,26,8,9,1]
console.log(Math.min(...arr)) // 1

Math.random()生成随机数

0~数据长度,根据传入的值,获取下标,随机获取内容

let arr = ["red", "green", "blue", "yellow", "black", "purple", "brown"];
function selectFrom(lowerValue,upperValue){
    let value = upperValue - lowerValue+1
    return Math.floor(Math.random() * value + lowerValue)
} 
let number = arr[selectFrom(0,arr.length - 1)] 
console.log(number)

在学习《JavaScript高级程序设计(第4版)》时的简单笔记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值