10.20隨筆

ES6

ECMAScript是一種由Ecma國際(前身為歐洲計算機制造商協會,英文名稱是European Computer Manufacturers Association)通過ECMA-262標準化的腳本程序設計語言。

這種語言在萬維網上應用廣泛,它往往被稱為JavaScript或JScript,但實際上后兩者是ECMA-262標準的實現和擴展。

?

模板對象?

?

新的語法? $ {NAME},并把它放在反引號里

?

?

遍歷數組

?

var arr=['jack','rose','lucy','lolita'];
console.log('原始for循環:');
for(var i=0;i<arr.length;i++){
console.log(i+' '+arr[i]);
}
console.log('ESS[forEach]:');
arr.forEach(function(value,index){
console.log(index+' '+value);
})
console.log('for-in:');
for(var i in arr){
console.log(i+' '+arr[i]);
}
console.log('ES6[for-of]:');
for(var name of arr){
console.log(name);
}
var arr2=[56,88,100,'99',150,1818];
//過濾數組(filter)
arr2=arr2.filter(function(value,index){
return value>100;
})
console.log(arr2);
//遍歷的同時修改
arr=arr.map(function(value,index){
return 'welcome:'+value+' '+index;
})
console.log(arr);
新的集合 ☆
Arry set map三者的區別?

小結:對比三種存儲介質

Array: 有序集合,下標是唯一的,值是可以重復的

Set ??: 無序集合,沒有下標,值就是唯一的

Map : 無序集合,采用鍵值對形式存儲數據,鍵(key)是唯一的,值可以重復

?

set

?

?

map

?

?

var myset = new Set("ABCDEAB");//實際存儲的值是:ABCDE,因為會自動過濾重復的值
console.log(myset.size);//Set集合的長度:0
myset.add("W");//給Set添加一個值
myset.delete("A");//從Set中刪除A
myset.clear();//清空整個Set集合
console.info(myset.has("X")) // 檢索Set中是否有X這個值
console.info(myset[2]) // Set不支持索引,所以這行會報錯
Array.from(myset);//Set轉數組

key-value
var maps = new Map();
maps.set("username", "小三");//存儲三組數據
maps.set("age", 20);
maps.set("sex", "男");
console.log(maps.get("username"));//通過Key取出
console.log(maps.size);//返回長度:3
console.log(maps.has("sex"));//是否有該key
console.log(maps.delete("age"));//根據key刪除一個值
//??????console.log(map.clear());//清空
console.log(maps);//輸出整個map集合
console.info(maps.keys());//返回Key的集合
console.info(maps.values());//返回Value的集合
面向對象的方法

Object.create():根據原型創建一個子類對象(繼承的另一種形式)

?

ct.defineProperty(Obj,property,{}); 在一個對象上定義新的屬性

?

Object.defineProperties(對象名,要添加的屬性): 為對象一次定義多個屬性

?

?

?

?

修飾器set和get

?

?

?

?

?

默認參數

?

?

?

?

?

拓展運算符 三個點(...)

將一根數組轉換為用逗號分隔的參數列表

?

?

?

let 和 var ☆

的區別?

1.定義的變量作用域只是封閉塊,而不是整個函數

2.var定義變量聲明提前,也就是可以在創建前獲取,但結果是undefined;

而let不存在聲明提前,所以如果在創建前獲取,會報錯的

3.var定義的全局變量是屬于window的,可以通過window取出來 (window點的出來);

而let定義的全局不屬于window (window點不出來)

?

?

?

const常量
特點 通常全局 局部時等于let效果
1.常量不讓后來修改
2.常量必須有初始值
3.如果將const定義的變量放在塊級作用域中,則與let效果一樣

?

?

解構
1.逗號隔開,用來批量賦值 (按順序去賦值) 2.使用解構進行變量的交換 [a,b]=[b,a]

?

?

箭頭函數

首先,我們發現省略了function,用()代替。

其次,{}被=>代替了。

最后,里面return沒有了,因為它將暗地里返回單個語句的結果。如果你超過了一行,將需要明確使用return。

最重要的是,在ES6中的內層函數里,可以瀟灑的使用this,它代表的就是外層函數的 ☆☆

this。因為箭頭函數沒有它自己的this值,箭頭函數內的this值繼承自外圍作用域。

?

新增寫法

String:

?

repeat();重復當前字符串多少次 重復多少次

console.log(“ABC".repeat(3));//ABCABCABC

?

includes();檢測當前字符串是否包含某個字符串,包含返回true ☆ 檢測是否包含

console.log(“ABC".includes("A"));//true

?

startsWith();檢測某字符串是否在源字符串的頭部,包含返回true ☆ 是不是以啥開頭

console.log(“ABC".startsWith("B"));//false

?

endsWith();檢測某字符串是否在源字符串的尾部,包含返回true ☆是不是以啥結尾

console.log("ABC".endsWith("C"));//true

?

Math:

?

Math.trunc();不進位的去除小數點

console.log(Math.trunc(3213.5));//3213

?

Math.sign();如果參數數字是正數,返回1;如果是負數,返回-1;如果是0,返回0

console.log(Math.sign(3213.5));//1

console.log(Math.sign(-3213.5));//-1

console.log(Math.sign(0));//0

☆用來判斷當前數字的正負數
map和weakmap的區別? ☆
它兩的結構類似也是用于鍵值對的集合
區別:weakmap只接受object對象作為鍵名(null)除外,方法只有set(),get(),has(),delete()
weakup沒有遍歷方法,size屬性,clear方法

轉載于:https://www.cnblogs.com/liuyangya/p/9833033.html

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

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

相關文章

極客招募令!兄弟杯區塊鏈極客競技大賽在上海等您來戰!

據悉&#xff0c;由國內首家區塊鏈技術社區區塊鏈兄弟主辦&#xff0c;旺鏈科技、離子鏈、中國云體系產業創新戰略聯盟、無退社區、指旺金科等單位強力支持&#xff0c;HiBlock區塊鏈社區、火球財經、布洛克財經、海豚區塊鏈、區塊網等百家技術社區和媒體通力合作的兄弟杯區塊鏈…

Java中Web程序修改配置文件不重啟服務器的方法

見&#xff1a;http://blog.sina.com.cn/s/blog_69398ed9010191jg.html 另&#xff1a;http://ekisstherain.iteye.com/blog/1701463 jrebel 、JavaRebel是什么&#xff0c;見另一博客&#xff1a;jrebel/JavaRebel 開發環境 1. JDK 2. MyEclipse 3. Tomcat 4. Struts2 5.…

ffmpeg-0.6.3 移植到 windows 開源代碼

ffmpeg-0.6.3開源編碼解碼庫&#xff0c;從linux下移植到windows vs2005&#xff0c;全部開源。 需要 Intel C Compile 和 開源的SDL庫支持&#xff0c;由于 Intel C Compile支持C99語法&#xff0c;所以源代碼改動很小很小。 主要的修改 1&#xff1a;添加了linux中有而wind…

一起嘮嘮分布式鎖

&#xff08;1&#xff09;分布式鎖和分布式事務的區別 1.分布式鎖是在集群環境下&#xff0c;用來控制不同機器對全局共享資源的訪問。 2.分布式事務是在集群環境下&#xff0c;用來保證全局事務的一致性&#xff0c;保證多個數據庫的數據整體上能正確的從一個一致性狀態轉到…

luogu2577/bzoj1899 午餐 (貪心+dp)

首先&#xff0c;應該盡量讓吃飯慢的排在前面&#xff0c;先按這個排個序 然后再來決定每個人到底去哪邊 設f[i][j]是做到了第i個人&#xff0c;然后1號窗口目前的總排隊時間是j&#xff0c;目前的最大總時間 有這個i和j的話&#xff0c;再預處理出前i個人的排隊總時間sum[i]&a…

wpf中xps文檔合并功能實現

原文:wpf中xps文檔合并功能實現跟著上一篇的xps文檔套打的文章&#xff0c;近期一直在研究xps打印技術&#xff0c;其中用戶提到了一個需求&#xff0c;要求能夠多頁面進行打印&#xff0c;我的想法是&#xff0c;先生成xps文件&#xff0c;然后將文件讀取出來以后&#xff0c;…

DCT(離散余弦變換(DiscreteCosineTransform))

離散余弦變換&#xff08;Discrete Cosine Transform&#xff0c;簡稱DCT變換&#xff09;是一種與傅立葉變換緊密相關的數學運算。在傅立葉級數展開式中&#xff0c;如果被展開的函數是實偶函數&#xff0c;那么其傅立葉級數中只包含余弦項&#xff0c;再將其離散化可導出余弦…

從源碼看ConcurrentHashMap

簡介 ConcurrentHashMap是線程安全的HashMap實現&#xff0c;這里主要研究JDK8后的ConcurrentHashMap&#xff0c;下面是ConcurrentHashMap的簡單結構&#xff1a; ConcurrentHashMap基于HashMap的基本邏輯&#xff0c;通過CAS synchronized 來保證并發安全性。ConcurrentHas…

代碼重構的方法

見&#xff1a;http://blog.csdn.net/u011889786/article/details/51865344 見&#xff1a;http://blog.csdn.net/weiky626/article/details/1602691 一.提取子函數 說白了就是一個大函數里&#xff0c;可以根據不同功能分成幾個小函數&#xff0c;因為說不定&#xff0c;其他…

android 去掉標題欄、狀態欄、橫屏

// 去掉標題欄supportRequestWindowFeature(Window.FEATURE_NO_TITLE);// 全屏、隱藏狀態欄getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);// 橫屏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION…

Spring Boot 整合Mybatis (一)

2019獨角獸企業重金招聘Python工程師標準>>> 新建spring-boot項目&#xff0c;相關依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><de…

x264 的 cache詳解

在這里和下一級別的分析中有必要先講一下這個h->mb.cache&#xff08;沒法講&#xff0c;就是cache!&#xff09;。 x264_macroblock_cache_load將參考幀中某位置的&#xff08;重建后&#xff09;數據保存進cache&#xff0c;供參考和反復使用。 x264_macroblock_cache_s…

同步/異步阻塞/非阻塞

平時開發中經常會聽大家說到什么同步阻塞、異步非阻塞等等名詞&#xff0c;這里我談下自己對這兩個名詞的理解&#xff0c;僅僅是個人觀點&#xff0c;并不一定正確。 1.阻塞/非阻塞 我認為判定阻塞還是非阻塞&#xff0c;取決于線程所做的操作是否需要將線程掛起等待。 舉個…

Repeater的使用

1.頁面代碼 如果要分頁&#xff0c;那么頁面開頭必須寫&#xff08;<% Register Src"~/Controls/Page.ascx" TagName"Page" TagPrefix"uc1" %>&#xff09; 并且分頁&#xff0c;頁腳<uc1:Page ID"Page2" runat"server&…

springboot 整合 mongodb實現 批量更新數據

現需求&#xff1a;需要批量將1000個數據先查詢在更新到mongodb&#xff08;如果查詢不到數據&#xff0c;則添加數據&#xff09; 1&#xff1a;工具類BathUpdateOptions 1 import org.springframework.data.mongodb.core.query.Query;2 import org.springframework.data.mong…

【開題報告】基于微信小程序的校園資訊平臺的設計與實現

1.選題背景與意義 隨著移動互聯網的快速發展&#xff0c;微信成為了人們日常生活中不可或缺的工具之一。在校園生活中&#xff0c;學生們對于校園資訊的獲取和交流需求也越來越高。然而&#xff0c;傳統的校園資訊發布方式存在信息不及時、傳播范圍有限等問題&#xff0c;無法…

三種Cache寫入方式原理簡介

三種Cache寫入方式原理簡介 在386以上檔次的微機中&#xff0c;為了提高系統效率&#xff0c;普遍采用Cache&#xff08;高速緩沖存儲器&#xff09;&#xff0c;現在的系統甚至可以擁有多級Cache。Cache實際上是位于CPU與DRAM主存儲器之間少量超高速的靜態存儲器&#xff08;S…

Minor GC和Full GC

我們在日常開發中可能經常會聽大家談論GC&#xff0c;但是其實很多人對GC的種類其實并不是很了解&#xff0c;接下來我們簡單介紹下Minor GC和Full GC及他們的區別。 MinorGC&#xff1a; 也可以叫作新生代GC&#xff0c;指的是發生在新生代的垃圾收集動作。因為新生代中對象大…

linux安裝軟件的幾種方法

見&#xff1a;http://blog.csdn.net/u010509774/article/details/50593231 一、rpm包安裝方式步驟&#xff1a; 1、找到相應的軟件包&#xff0c;比如soft.version.rpm&#xff0c;下載到本機某個目錄&#xff1b; 2、打開一個終端&#xff0c;su -成root用戶&#xff1b; …

Android NDK MediaCodec在ijkplayer中的實踐

https://www.jianshu.com/p/41d3147a5e07 從API 21&#xff08;Android 5.0&#xff09;開始Android提供C層的NDK MediaCodec的接口。 Java MediaCodec是對NDK MediaCodec的封裝&#xff0c;ijkplayer硬解通路一直使用的是Java MediaCodec接Surface的方式。 本文的主要內容是&a…