日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ES5-9 【utils】构造函数及实例化原理、包装类

發(fā)布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES5-9 【utils】构造函数及实例化原理、包装类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 構(gòu)造函數(shù)

調(diào)用構(gòu)造函數(shù)實際會經(jīng)歷4步
1 創(chuàng)建一個新對象
2 將構(gòu)造函數(shù)的作用域賦值給對象(因此this就指向了這個對象)
3 執(zhí)行構(gòu)造函數(shù)中的代碼(為這個新對象添加屬性)
4 返回新對象

  • 在構(gòu)造函數(shù)內(nèi)部,this指向構(gòu)造函數(shù)實例化的對象(new的時候做的事)
  • 當(dāng)構(gòu)造函數(shù)return引用值時(函數(shù)、函數(shù)聲明、對象、數(shù)組、Date…),返回引用值,若是原始值則忽略



2.包裝類

  • 原始值沒有自己的方法和屬性
console.log(new Number(1)) console.log(new String(1)) console.log(new Boolean(1))

  • 數(shù)字經(jīng)過new Number后成為一個對象,可以為它添加屬性和方法,可以參與運算,但返回的結(jié)果是原始值

  • undefined和null不能設(shè)置屬性和方法

  • 如果把new的結(jié)果保存起來,則能打印len

  • 注意以下例子

var a = 1; a.len = 5; console.log(a.len) // undefined // 不會報錯,一個變量點任何屬性都不會報錯

  • new Number不會改變原來的原始值a
var a = 1; var objA = new Number(a) objA.name = 'name' console.log(objA, a) // Number {1, name: "name"} 1
  • var str = 123,str能打印length,并不是str具有其屬性,而是打印時經(jīng)過了一層包裝類
  • 數(shù)組的length可以用于截斷或設(shè)置,empty填充



var x = 1,y = z = 0; function add(n) {return n = n + 1; } y = add(x); function add(n) {return n = n + 3 } z = add(x); console.log(x, y, z) // 1 4 4
  • foo1、foo3能輸出12345,foo2不報錯
  • ASCII碼表1 0-127 表2 128-255 1字節(jié)
  • UNICODE碼哈涵蓋了ASCII碼 從第256位開始的占2字節(jié)
function compute(str) {var sum = 0for (var i = 0; i < str.length; i++) {let temp = str.charCodeAt(i)sum += temp <= 255 ? 1 : 2}return sum } console.log(compute('ab黃')) // 4
  • 優(yōu)化:減少循環(huán)次數(shù)

總結(jié)

以上是生活随笔為你收集整理的ES5-9 【utils】构造函数及实例化原理、包装类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。