js ES6 part3

Number

是內置構造函數,用來創建數值

const price =12.345console.log(price.toFixed(2))//保留兩位小數 12.35

綜合案例購物車

<body><div class="list"><!-- <div class="item"><img src="https://yanxuan-item.nosdn.127.net/84a59ff9c58a77032564e61f716846d6.jpg" alt=""><p class="name">稱心如意手搖咖啡磨豆機咖啡豆研磨機 <span class="tag">【贈品】10優惠券</span></p><p class="spec">白色/10寸</p><p class="price">289.90</p><p class="count">x2</p><p class="sub-total">579.80</p></div> --></div><div class="total"><div>合計:<span class="amount">1000.00</span></div></div><script>const goodsList = [{id: '4001172',name: '稱心如意手搖咖啡磨豆機咖啡豆研磨機',price: 289.9,picture: 'https://yanxuan-item.nosdn.127.net/84a59ff9c58a77032564e61f716846d6.jpg',count: 2,spec: { color: '白色' }},{id: '4001009',name: '竹制干泡茶盤正方形瀝水茶臺品茶盤',price: 109.8,picture: 'https://yanxuan-item.nosdn.127.net/2d942d6bc94f1e230763e1a5a3b379e1.png',count: 3,spec: { size: '40cm*40cm', color: '黑色' }},{id: '4001874',name: '古法溫酒汝瓷酒具套裝白酒杯蓮花溫酒器',price: 488,picture: 'https://yanxuan-item.nosdn.127.net/44e51622800e4fceb6bee8e616da85fd.png',count: 1,spec: { color: '青色', sum: '一大四小' }},{id: '4001649',name: '大師監制龍泉青瓷茶葉罐',price: 139,picture: 'https://yanxuan-item.nosdn.127.net/4356c9fc150753775fe56b465314f1eb.png',count: 1,spec: { size: '小號', color: '紫色' },gift: '50g茶葉,清洗球,寶馬, 奔馳'}]// 1. 根據數據渲染頁面document.querySelector('.list').innerHTML = goodsList.map(item => {// console.log(item)  // 每一條對象// 對象解構  item.price item.countconst { picture, name, count, price, spec, gift } = item// 規格文字模塊處理const text = Object.values(spec).join('/')// 計算小計模塊 單價 * 數量  保留兩位小數 // 注意精度問題,因為保留兩位小數,所以乘以 100  最后除以100const subTotal = ((price * 100 * count) / 100).toFixed(2)// 處理贈品模塊 '50g茶葉,清洗球'const str = gift ? gift.split(',').map(item => `<span class="tag">【贈品】${item}</span> `).join('') : ''
//標簽前面不能多打空格return `<div class="item"> <img src=${picture} alt=""><p class="name">${name} ${str} </p><p class="spec">${text} </p><p class="price">${price.toFixed(2)}</p><p class="count">x${count}</p><p class="sub-total">${subTotal}</p></div>`}).join('')// 3. 合計模塊const total = goodsList.reduce((prev, item) => prev + (item.price * 100 * item.count) / 100, 0)// console.log(total)document.querySelector('.amount').innerHTML = total.toFixed(2)</script>
</body>

面向對象和面向過程

構造函數

封裝是面向對象思想中比較重要的一部分,js面向對象可以通過構造函數實現的封裝。
同樣的將變量和函數組合到了一起并能通過 this 實現數據的共享,所不同的是借助構造函數創建出來的實例對象之間是彼此不影響的。
總結:
1. 構造函數體現了 面向對象的封裝特性
2. 構造函數實例創建的對象彼此獨立、互不影響
面向對象編程的特性:比如封裝性、繼承性等,可以借助于構造函數來實現
但是 存在浪費內存的問題

// 構造函數 公共的屬性和方法 封裝到 Star 構造函數里面了
function Star(uname, age) {
this.uname = uname
this.age = age
this.sing = function () {
console.log('唱歌')
const ldh = new Star('劉德華',55)
const zxy = new Star('張學友',58)//console.log(ldh === zxy)
console.log(ldh.sing === zxy.sing)//false

原型

構造函數通過原型分配的函數是所有對象所 共享的 。

  • JavaScript 規定, 每一個構造函數都有一個 prototype 屬性 ,指向另一個對象,所以我們也稱為原型對象。?
  • 這個對象可以掛載函數,對象實例化不會多次創建原型上函數, 節約內存 。
  • 可以把那些不變的方法直接定義在 prototype 對象上,這樣所有對象的實例都可以共享這些方法。
  • 構造函數和原型對象中的 this 都指向 實例化的對象。

this

構造函數和原型對象中的this 都指向?實例化的對象

  <script>let thatfunction Star(uname) {// that = this// console.log(this)this.uname = uname}// 原型對象里面的函數this指向的還是 實例對象 ldhStar.prototype.sing = function () {that = thisconsole.log('唱歌')}// 實例對象 ldh   // 構造函數里面的 this 就是  實例對象  ldhconst ldh = new Star('劉德華')ldh.sing()console.log(that === ldh)</script>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44541.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44541.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44541.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【代碼隨想錄】【算法訓練營】【第66天】 [卡碼95]城市間貨物運輸II [卡碼96]城市間貨物運輸III

前言 思路及算法思維&#xff0c;指路 代碼隨想錄。 題目來自 卡碼網。 day 66&#xff0c;周五&#xff0c;ding ding~ [卡碼95] 城市間貨物運輸II 題目描述 卡碼95 城市間貨物運輸II 解題思路 前提&#xff1a; 思路&#xff1a; 重點&#xff1a; 代碼實現 C語言 …

數據結構(Java):隊列Queue集合力扣面試OJ題

1、隊列 1.1 隊列的概念 隊列是一個特殊的線性表&#xff0c;只允許在一端&#xff08;隊尾&#xff09;進行插入數據操作&#xff0c;在另一端&#xff08;對頭&#xff09;進行刪除數據。隊列具有先進先出FIFO(First In First Out)的特性。 入隊&#xff1a;數據只能從隊尾…

有獎競猜!斗牛士軍團與法蘭西騎士的終極之戰,誰將笑傲歐洲之巔?

痛快看球&#xff0c;暢玩游戲&#xff0c;AGON愛攻帶你進入酣暢淋漓的足球世界&#xff01; 7月15日&#xff0c;綠茵賽場硝煙再起&#xff0c;兩支身披榮光的王者之師&#xff0c;一路過關斬將&#xff0c;最終會師決賽。一場萬眾矚目的巔峰對決即將拉開帷幕&#xff0c;究竟…

linux UDP通訊:接口函數示例

一、主要用的接口&#xff1a; //服務器端 1. socket() 創建套接字 2. bind() 綁定套接字 與TCP區別開來&#xff0c;沒有listen()、accept()建立連接的過程 3. 通信 recvfrom() sendto() 4. close //客戶端 1. socket() 創建套接字 與TCP區別開來&#xff0c;沒有connect()建立…

數據結構——排序算法(冒泡、快速、選擇、插入)

文章目錄 1. 概念 2. 十大排序算法 3. 冒泡排序 4. 冒泡代碼實現 5. 快速排序 6. 快速代碼實現 7. 選擇排序 8. 選擇代碼實現 9. 插入排序 10. 插入代碼實現 1. 概念 排序&#xff08;Sort&#xff09;是將無序的記錄序列&#xff08;或稱文件&#xff09;調整成有序…

LabVIEW前面板占滿整個屏幕(轉)

希望在運行一個LabVIEW程序時&#xff0c;它的前面板能夠占據整個屏幕&#xff0c;且不顯示Windows的任務欄或其他任何的LabVIEW菜單選項。怎樣才能實現這一功能&#xff1f; 您可以通過手動配置或編程的方式實現該功能。 手動配置VI屬性 您可以通過以下操作&#xff0c;將…

導入項目,JAVA文件是咖啡杯圖標

問題 從圖中可以看到&#xff0c;JAVA文件是咖啡杯圖標 原因 項目沒有識別為MAVEN項目 解決辦法 進入pom.xml文件&#xff0c;右鍵點擊Add as Maven Project即可

在Ubuntu 16.04上安裝和保護MongoDB的方法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站。 簡介 MongoDB 是一個免費且開源的面向文檔的數據庫。它被歸類為 NoSQL 數據庫&#xff0c;因為它不依賴于傳統的基于表的關系型數據庫結…

Spring MVC入門3

看完這篇博客你能學到什么 理解JSON的使用理解注解PathVariable理解解注解RequestPart理解cookie和Session的基本概念理解cookie和Session的區別 如果想真正掌握&#xff0c;還需要自己勤加練習。 正文 JSON JSON概念 JSON&#xff1a;JavaScript Object Notation 【JavaS…

【YOLOv8】 用YOLOv8實現數字式工業儀表智能讀數(一)

上一篇圓形表盤指針式儀表的項目受到很多人的關注&#xff0c;咱們一鼓作氣&#xff0c;把數字式工業儀表的智能讀數也研究一下。本篇主要講如何用YOLOV8實現數字式工業儀表的自動讀數&#xff0c;并將讀數結果進行輸出&#xff0c;若需要完整數據集和源代碼可以私信。 目錄 &…

gin源碼分析

一、高性能 使用sync.pool解決頻繁創建的context對象&#xff0c;在百萬并發的場景下能大大提供訪問性能和減少GC // ServeHTTP conforms to the http.Handler interface. // 每次的http請求都會從sync.pool中獲取context&#xff0c;用完之后歸還到pool中 func (engine *Engin…

在C++中怎樣使用C庫

在C中使用C庫是一個相對直接的過程&#xff0c;因為C是從C發展而來的&#xff0c;并且與C高度兼容。這意味著你可以直接在C代碼中使用C庫函數、頭文件和變量&#xff0c;而無需進行特殊轉換。以下是一些基本的步驟和注意事項&#xff0c;用于在C中使用C庫&#xff1a; 1. 包含…

c語言位操作符相關題目之交換兩個數的值

文章目錄 一、題目二、方法11&#xff0c;思路2&#xff0c;代碼實現 三、方法21&#xff0c;思路2&#xff0c;代碼實現 四、方法31&#xff0c;思路2&#xff0c;代碼實現 總結 提示&#xff1a;以下是本篇文章正文內容&#xff0c;下面案例可供參考 一、題目 實現兩個變量的…

淺談PostCSS

1. 背景 css的預處理器語言&#xff08;比如 sass&#xff0c; less&#xff0c; stylus&#xff09;的擴展性不好&#xff0c;你可以使用它們已有的功能&#xff0c;但如果想做擴展就沒那么容易。 sass是很常用的css預處理器語言&#xff0c;在webpack中要使用它&#xff0c;…

設計模式使用場景實現示例及優缺點(結構型模式——組合模式)

結構型模式 組合模式&#xff08;Composite Pattern&#xff09; 組合模式使得用戶對單個對象和組合對象的使用具有一致性。 有時候又叫做部分-整體模式&#xff0c;它使我們樹型結構的問題中&#xff0c;模糊了簡單元素和復雜元素的概念&#xff0c;客戶程序可以像處理簡單元…

小米起訴“小米”商標侵權,索賠500萬!

近日浙江麗水有家叫小米的公司&#xff0c;因為商標侵權被小米科技起訴索賠500萬&#xff0c;需要變更企業名稱&#xff0c;官網也不能用“小米智能大家居”等&#xff0c;還有其它的賠償&#xff0c;普推知產商標老楊分析&#xff0c;“小米智能大家居”“小米”&#xff0c;后…

【Flask從入門到精通:第九課:數據庫基本操作、數據表操作以及數據操作】

數據庫操作 數據庫驅動&#xff08;drivers&#xff09;模塊&#xff1a;pymysql、MySQLDB 數據庫基本操作 在SQLAlchemy中&#xff0c;添加、修改、刪除操作&#xff0c;均由數據庫會話(sessionSM)管理。 會話用 db.session 表示。在準備把數據寫入數據庫前&#xff0c;要先…

交易平臺Zero Hash現已支持SUI交易

Zero Hash是一家領先的加密貨幣和穩定幣基礎設施平臺&#xff0c;為包括Stripe、Shift4和Franklin Templeton在內的公司提供支持&#xff0c;現在也支持對SUI的訪問。此舉使Zero Hash的客戶及其終端用戶能夠使用SUI。 提供API和SDK以及專注于無縫連接法幣、加密貨幣和穩定幣的…

讀人工智能全傳11人工智能會出什么錯

1. 人工智能會出什么錯 1.1. 一些報道是公正合理的&#xff0c;不過坦白地說&#xff0c;大部分報道都愚蠢得無可救藥 1.2. 一些報道頗有知識性和引導性&#xff0c;而大部分則是杞人憂天式的恐嚇 1.3. 滑稽的報道迎合了大眾對人工智能的“終結者式恐懼” 1.3.1. 我們創造出…

html設計(兩種常見的充電效果)

第一種 完整代碼&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title&…