[Javascript] Check if value exists in Array

一般常見的需求像是:

  1. 當 array 找到此 value 时,即停止輸入新的 value 到數組裡
  2. 當 array 包含特定 value 时,即執行某個 script
  3. 等等不勝凡舉

rails 在處理 value 是否存在 array 裡很容易,運用 include or exists
而在 javascript 是怎麼檢查 value 是否存在 array 裡?

[JQuery] 替換 document ready 的方法

研究 readyState ,並替換 jQuery $(document).ready 的方法

研究 readyState ,以原生 javascript 的方式去實現!

onreadystatechange
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
console.log(document.readyState);

//監聽,當readystate狀態改變就觸發(loading,interactive,complete)
document.onreadystatechange = function () {

console.log(document.readyState);

if (document.readyState == "loading") {
//這邊一定不會進來,因為網頁一開始狀態就是loading,沒有改變,也不會觸發onreadystatechange
console.log('The document is still loading.');
}
if (document.readyState == "interactive") {
console.log('The document has finished loading and the document has been parsed but sub-resources such as images, stylesheets and frames are still loading.');
}
if (document.readyState == "complete") {
// document is ready. Do your stuff here
console.log('The document and all sub-resources have finished loading. The state indicates that the load event is about to fire.');
}
}

[ES6] Use Youtube Api,實作 youtube 影音

Upload Youtube

當我們上傳影音到 youtube 後,
一般串接影音作法,只要點擊介面上的嵌入影音
就會得到一串 iframe 的方式!
但是今天我們需要偵測用戶暫停或者 replay,甚至記載點擊數
以上種種客製化,就需要使用到 youtube提供的 API

程式碼

index.html
1
2
3
4
5
6
7
8
9
10
11
12
<div class="video">
<div id="video_Player"></div>
</div>

<!-- 下方這串最後被我移除,實作在Creative_video.js -->
<script>
/* This code loads the IFrame Player API code asynchronously. */
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
</script>

[ES6] 異步操作 async 函數

Async 函数是什么?

一句话,它就是 Generator 函数的语法糖。
但是Generator 還是太複雜

async函数:

1
2
3
4
5
6
const asyncReadFile = async function () {
const afile = await readFile('/etc/fstab');
const bfile = await readFile('/etc/shells');
console.log(afile.toString());
console.log(bfile.toString());
};

[ES6] Class 語法,和 Extend 延伸實例

首先依照這個資源,瞭解 ECMAScript 6 class

ECMAScript 6 入门:https://es6.ruanyifeng.com/#docs/class
Javascript 物件導向子類和父類的應用等
因此開啟了我的深入淺出論文?(又臭又長的文章XD)

我寫的範例:

這邊有jsbin連結

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class People {
constructor(height, money) {
this.height = height;
this.money = money;
}
work() {
console.log('I am working');
}
play() {
console.log('I am playing');
}
//info 可以先不用看
info() {
console.log('我身高',this.height, '我有',this.money);
}
}
//----------------特殊舉例-可以先不用理會-------------------
let cMan =new People ('0cm','0元');
//----------------aMan-object---------------------
class aMan extends People {
swim() {
console.log('aMan','I am swimming');
}
};
//----------------new-aMan------------------------
let poolMan = new aMan('165cm', '5億');
//----------------bMan-object---------------------
class bMan extends People {
constructor(height, money, face) {
super(height, money);
this.face = face;
}
swim() {
console.log('bMan','I am swimming');
}
talk() {
console.log('bMan','I am talking');
}
//info 可以先不用看
info() {
console.log('我身高有',this.height, '我錢有',this.money,'我臉很',this.face);
}
};
//----------------new-bMan------------------------
let richMan = new bMan('195cm','500億','帥');

[Jquery] Infinite scroll to load more

在上一篇:[Jquery] use $getJSON
教大家如何撈取json的內容後

這一篇就是延伸上次,做進階練習
首先我們創造一個api.json檔,或者api.js
我試過兩種檔名格式都沒有問題,可以串接無礙

假設我們先創造了api.json檔

key =>"html"
value => "<p style='color:#fff'>我是白色</p>"

api.json
1
{"html": "<p style='color:#fff'>我是白色</p>"}

這邊提醒,由於外面是雙引號(”),所以裡面要用單引號來做區隔(’)

[Jquery] use $getJSON

Json的格式

J森、J桑,傻傻分不清楚
JSON全名:JavaScript Object Notation
就是在JavaScript之中,表示物件的一種格式

重點概念,注意事項

物件(object)用大括號 { }
陣列(array)用中括號 [ ]
整個JSON格式文件{}之中,是不能使用註解的
json object的鍵值(key)(value),建議要用字串做鍵值
記住最後一個key,value 不要再加上 “,
假設你是個初學,不知道什麼是陣列、字串、數字、物件、甚至布林(看這

1
2
//錯誤範例,key 要用" "包起來,讓他成為字串
{0:"hell", 1:"kurt", 2:"jimmy", 3:"Nic",key:"value"}
1
{"0":"hell", "1":"kurt", "2":"jimmy", "3":"Nic"}

[Javascript] preventDefault vs stopPropagation vs return false

網路上眾多文章上或者解答
像是這篇,很清楚地讓我理解結論:

1
2
3
4
5
6
7
8
9
10
function() {
return false;
}

// IS EQUAL TO

function(event) {
event.preventDefault();
event.stopPropagation();
}

但是你確定真的是這樣引用嗎?
還有你真的用過嗎?

一些觀念紀錄
首先e.preventDefault(); e.stopPropagation是原生javascript的用法
而在Jquery 文件上也可以找到,是因為這是被Jquery沿用下去的
補筆記,網紅組長:在MDN - Mozilla Developer Network上找到的都不會是Query文件

Event.preventDefault()
我們以下簡稱pd

Event.stopPropagation()
我們以下簡稱sp

介紹一下addEventListener

1
document.addEventListener(event, function, useCapture)

第一個參數是監聽的種類:click,load
第二個參數是監聽的function
第三個參數是布零值:true or false

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×