最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript高級程序設(shè)計之基本引用類型

 更新時間:2021年11月12日 14:24:55   作者:劉志軍  
這篇文章主要介紹了JavaScript高級程序設(shè)計之基本引用類型,引用值(對象)都是某個特定的引用類型的實例對象,例如 Date類型、Function類型,RegExp 正則表達(dá)式類型等等。JavaScript內(nèi)置了一些常用的引用類型給開發(fā)者使用。下面來看看文章詳細(xì)內(nèi)容

前言:

引用值(對象)都是某個特定的引用類型的實例對象,例如 Date類型、Function類型,RegExp 正則表達(dá)式類型等等。JavaScript內(nèi)置了一些常用的引用類型給開發(fā)者使用。

1、Date

下面3個方法返回的單位為毫秒的時間戳

let t1 = Date.UTC(2020, 11, 7, 22,14)
let t2 = Date.parse("5/23/2020")
let t3 = Date.now()


parse 接收的參數(shù)格式可以為:

Date() 構(gòu)造函數(shù)接收的參數(shù)有很多種,可以不接收任何參數(shù),也可以接收時間戳,還可以是UTC函數(shù)和parse函數(shù)接收的參數(shù)

let t4 = new Date()
let t5 = new Date(2020, 11, 7)  // 月份從0開始
let t6 = new Date("5/23/2020")

Date 類型提供了相當(dāng)于的函數(shù),可自行查閱相關(guān)API

2、RegExp

JavaScript中,正則表達(dá)式使用如下方式表示

let  express = /pattern/flags;


  • g :全局模式,表示查找字符串的全部內(nèi)容,而不是找到第一個匹配的內(nèi)容就結(jié)束。
  • i :不區(qū)分大小寫,表示在查找匹配時忽略 pattern 和字符串的大小寫。
  • m :多行模式,表示查找到一行文本末尾時會繼續(xù)查找。
  • u :Unicode 模式,啟用 Unicode 匹配。
  • s : dotAll 模式,表示元字符 . 匹配任何字符(包括 \n 或 \r )。

除了用字面量形式表示正則表達(dá)式之外,還可以使用RegExp構(gòu)造函數(shù)創(chuàng)建。

let p1 = /[cb]at/i

let p2 = new RegExp("[cb]at", "i")

兩者等效。

RegExp對象有兩個重要的方法,分別是exectest方法

let p1 = /[cb]at/i
let text = "hello cat bat nihao"

matches = p1.exec(text)

console.log(matches.index)
console.log(matches.input)
console.log(matches[0])  //cat


如果正則表達(dá)式匹配的話,返回的 matches Array數(shù)組對象, 不匹配返回的就是null。 另外 matches 還有兩個額外的屬性 indexinput 。 index 是匹配的其實位置。input就是要查找的字符串。 數(shù)組里面的元素其實就是正則表達(dá)式中的捕獲分組。如果沒有分組,第0個元素就是匹配的那個字符串。

let p1 = /([cb]a(t))/i
console.log(matches[0])  //cat
console.log(matches[1])  //cat
console.log(matches[2])  //t

test 方法返回的是布爾值,用于判斷字符串是否匹配正則表達(dá)式。

let matched = /\d+/g.test("13")
console.log(matched)  //true

這里還要解釋一下flag里面的那個g的作用, 現(xiàn)在看起來好像沒什么用,看下面這個例子就能明白

let p1 = /[cb]at/gi
let text = "hello cat bat nihao"
console.log(p1.exec(text)) // ["cat", index: 6, input: "hello cat bat nihao", groups: undefined]
console.log(p1.exec(text))  //["bat", index: 10, input: "hello cat bat nihao", groups: undefined]

text 這個字符串中,其實有兩處是匹配正則表達(dá)式的,但是我們調(diào)用exec的適合,matches數(shù)組里面的元素是cat,并沒有bat。 當(dāng)我第二次執(zhí)行exec 的適合,返回的就是bat了。如果沒有g(shù),不管調(diào)用多少次,返回的都是cat。找到第一個匹配的內(nèi)容就結(jié)束了。

另外,字符串提供了很多方法,接收正則表達(dá)式作為參數(shù),可以用于正則表達(dá)式匹配,字符串替換、查找指定字符串或則分組。

3、原始包裝類型

Boolean、NumberString 這三個引用類型是原始類型對應(yīng)的包裝類型, 當(dāng)在原始值身上用到某些方法時,會自動將原始值包裝成對應(yīng)的引用類型。比如上面字符串提供的那些方法,原始值本來是沒有這些方法的,但是String類型就有。 這種機(jī)制使得原始值也能擁有對象的行為。

原始包裝類型有如下特點,可以注意下:

let s1 = "hello"
s1.name = "sex"
console.log(s1.name) //undefined


為什么s1.name undefined 呢? 執(zhí)行第二行代碼的時候,會將s1轉(zhuǎn)換為了包裝類型, 執(zhí)行完這行代碼時,該類型的對象其實就被回收了。然后在第三行又創(chuàng)建了一個包裝類型的對象,但是這個時候并沒有name屬性,所以就是undefined。 除非顯示的創(chuàng)建一個String對象。

let s1 = "hello"
s1 = new String(s1)
s1.name = "sex"
console.log(s1.name) 


對于Number, 使用 new 和 不適用 new 的區(qū)別

let value = 25
let number = Number(value)
obj = new Number(value)

console.log(typeof number)  //number
console.log(typeof obj)  //object

console.log(number instanceof Number)  //false  原始值不是任何類型的實例對象
console.log(obj instanceof Number)   //true

number 是原始值, obj Number類型的對象。

Number對象有個toFxied 方法用于將數(shù)值格式化為字符串, 用于保留指定位小數(shù)

let num = 10.007
console.log(num.toFixed(2))  //10.01  


對于String,提供了非常多的操作字符串的方法,可以按照實例全部手敲一遍。

4、其他內(nèi)置對象

全局作用域下面的變量,常用的一些單獨的函數(shù)如evel,parseInt,isNaN,還有原始引用類型的構(gòu)造函數(shù) String、Boolean、Number Function、Array都是Global的屬性。但是我們沒法顯示的訪問Global對象。另外encodeURI,encodeURIComponent 在處理URL的適合非常有用。

url = "http://www.baidu.com/vue. js"
console.log(encodeURI(url))   //http://www.baidu.com/vue.%20js
console.log(encodeURIComponent(url))  // http%3A%2F%2Fwww.baidu.com%2Fvue.%20js

與之對應(yīng)的解碼函數(shù)是decodeURI,decodeURIComponent。

在瀏覽器中,window對象作為了Global的代理對象,全局作用域下面的變量可以通過window對象來訪問。

var name = "zhang"
console.log(window.name)
Math對象
console.log(Math.max(1,2,3,4))  // 最大值
console.log(Math.min(3,3,4))  // 最小值

console.log(Math.ceil("1.2"))  //向上取整
console.log(Math.floor(3.3))  //向下取整
console.log(Math.round(3.6))  //四舍五入取整

到此這篇關(guān)于JavaScript高級程序設(shè)計之基本引用類型的文章就介紹到這了,更多相關(guān)JavaScrip基本引用類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

平顺县| 宁明县| 察雅县| 湟中县| 大渡口区| 武清区| 改则县| 新化县| 垣曲县| 华容县| 许昌县| 松江区| 宜州市| 丽江市| 察雅县| 峨边| 中宁县| 繁峙县| 龙海市| 德州市| 文登市| 福建省| 武定县| 胶南市| 家居| 马尔康县| 尼玛县| 清河县| 化德县| 阳山县| 莒南县| 合阳县| 舒城县| 江西省| 辽宁省| 竹山县| 赤峰市| 将乐县| 大渡口区| 普格县| 尖扎县|