国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS總結(jié)篇--[轉(zhuǎn)]JS學(xué)習(xí)總結(jié)-技巧、方法、細(xì)節(jié)

wizChen / 3236人閱讀

摘要:變量轉(zhuǎn)換類型類型類型類型類型但是轉(zhuǎn)換日期和正則表達(dá)式必須使用構(gòu)造函數(shù),創(chuàng)建正則表達(dá)式的時(shí)候要使用這樣的簡(jiǎn)化形式。

變量轉(zhuǎn)換
var myVar  = "3.14159",
str   = ""+ myVar,// string類型
int   = ~~myVar, //  number類型
float  = 1*myVar, // number類型
bool  = !!myVar, // boolean類型
array  = [myVar]; // array類型

但是轉(zhuǎn)換日期(new Date(myVar))和正則表達(dá)式(new RegExp(myVar))必須使用構(gòu)造函數(shù),創(chuàng)建正則表達(dá)式的時(shí)候要使用/pattern/flags這樣的簡(jiǎn)化形式。

取整同時(shí)轉(zhuǎn)換成數(shù)值型 
//字符型變量參與運(yùn)算時(shí),JS會(huì)自動(dòng)將其轉(zhuǎn)換為數(shù)值型(如果無法轉(zhuǎn)化,變?yōu)镹aN)
"10.567890" | 0 //10

//JS里面的所有數(shù)值型都是雙精度浮點(diǎn)數(shù),
//因此,JS在進(jìn)行位運(yùn)算時(shí),會(huì)首先將這些數(shù)字運(yùn)算數(shù)轉(zhuǎn)換為整數(shù),然后再執(zhí)行運(yùn)算
//| 是二進(jìn)制或, x|0 永遠(yuǎn)等于x;
//^為異或,同0異1,所以 x^0 還是永遠(yuǎn)等于x;
//~是按位取反,搞了兩次以后值當(dāng)然是一樣的
"10.567890" ^ 0  //結(jié)果: 10  

- 2.23456789 | 0 //-2
~~2.23456789 //2
~~-2.23456789 //-2
~-2.23456789 //1
~2.23456789 //-3
日期轉(zhuǎn)數(shù)值
//JS本身時(shí)間的內(nèi)部表示形式就是Unix時(shí)間戳,以毫秒為單位記錄著當(dāng)前距離1970年1月1日0點(diǎn)的時(shí)間單位     
var d = +new Date(); //1488947616099
類數(shù)組對(duì)象轉(zhuǎn)數(shù)組
var arr =[].slice.call(arguments)

如下實(shí)例:

function test() {
  var res = ["a", "b"];
  //方法1
  res = res.concat([].slice.call(arguments,0));  //0可省略,表示從開始位置截取
  
  //方法2
  Array.prototype.push.apply(res, arguments); 
}
test("c","d");  //["a", "b", "c", "d"]
進(jìn)制之間的轉(zhuǎn)換
(int).toString(16); // converts int to hex, eg 12 => "C"
(int).toString(8); // converts int to octal, eg. 12 => "14"
parseInt(string,16) // converts hex to int, eg. "FF" => 255
parseInt(string,8) // converts octal to int, eg. "20" => 16
判斷是否為IE
//edit http://www.lai18.com 
// 貌似是最短的,利用IE不支持標(biāo)準(zhǔn)的ECMAscript中數(shù)組末逗號(hào)忽略的機(jī)制
var ie = !-[1,];
// 利用了IE的條件注釋
var ie = /*@cc_on!@*/false;
// 還是條件注釋
var ie//@cc_on=1;
// IE不支持垂直制表符
var ie = "v"=="v";
// 原理同上
var ie = !+"v1";
盡量利用原生方法

要找一組數(shù)字中的最大數(shù),我們可能會(huì)寫一個(gè)循環(huán),例如:

var numbers = [3,342,23,22,124];
var max = 0;
for(var i=0;i max){
  max = numbers[i];
 }
}
alert(max);

其實(shí)利用原生的方法,可以更簡(jiǎn)單實(shí)現(xiàn)

var numbers = [3,342,23,22,124];
numbers.sort(function(a,b){return b - a});
alert(numbers[0]);

當(dāng)然最簡(jiǎn)潔的方法便是:

Math.max(12,123,3,2,433,4); // returns 433

當(dāng)前也可以這樣:

Math.max.apply(Math, [12, 123, 3, 2, 433, 4]) //取最大值
Math.min.apply(Math, [12, 123, 3, 2, 433, 4]) //取最小值
事件委派

舉個(gè)簡(jiǎn)單的例子:html代碼如下:

Great Web resources

js代碼如下:

// Classic event handling example
(function(){
 var resources = document.getElementById("resources");
 var links = resources.getElementsByTagName("a");
 var all = links.length;
 for(var i=0;i

利用事件委派可以寫出更加優(yōu)雅的:

(function(){
 var resources = document.getElementById("resources");
 resources.addEventListener("click",handler,false);
 function handler(e){
  var x = e.target; // get the link tha
  if(x.nodeName.toLowerCase() === "a"){
   alert("Event delegation:" + x);
   e.preventDefault();
  }
 };
})();
你知道你的瀏覽器支持哪一個(gè)版本的Javascript嗎?
var JS_ver = [];
(Number.prototype.toFixed)?JS_ver.push("1.5"):false;
([].indexOf && [].forEach)?JS_ver.push("1.6"):false;
((function(){try {[a,b] = [0,1];return true;}catch(ex) {return false;}})())?JS_ver.push("1.7"):false;
([].reduce && [].reduceRight && JSON)?JS_ver.push("1.8"):false;
("".trimLeft)?JS_ver.push("1.8.1"):false;
JS_ver.supports = function()
{
  if (arguments[0])
    return (!!~this.join().indexOf(arguments[0] +",") +",");
  else
    return (this[this.length-1]);
}
alert("Latest Javascript version supported: "+ JS_ver.supports());
alert("Support for version 1.7 : "+ JS_ver.supports("1.7"));
判斷屬性是否存在
// BAD: This will cause an error in code when foo is undefined
if (foo) {
  doSomething();
}
// GOOD: This doesn"t cause any errors. However, even when
// foo is set to NULL or false, the condition validates as true
if (typeof foo != "undefined") {
  doSomething();
}
// BETTER: This doesn"t cause any errors and in addition
// values NULL or false won"t validate as true
if (window.foo) {
  doSomething();
}

有的情況下,我們有更深的結(jié)構(gòu)和需要更合適的檢查的時(shí)候:

// UGLY: we have to proof existence of every
// object before we can be sure property actually exists
if (window.oFoo && oFoo.oBar && oFoo.oBar.baz) {
  doSomething();
}

其實(shí)最好的檢測(cè)一個(gè)屬性是否存在的方法為:

if("opera" in window){
  console.log("OPERA");
}else{
  console.log("NOT OPERA");
}
檢測(cè)對(duì)象是否為數(shù)組
var obj=[];
Object.prototype.toString.call(obj)=="[object Array]";
給函數(shù)傳遞對(duì)象
function doSomething() {
  // Leaves the function if nothing is passed
  if (!arguments[0]) {
  return false;
  }
  var oArgs  = arguments[0]
  arg0  = oArgs.arg0 || "",
  arg1  = oArgs.arg1 || "",
  arg2  = oArgs.arg2 || 0,
  arg3  = oArgs.arg3 || [],
  arg4  = oArgs.arg4 || false;
}
doSomething({
  arg1  : "foo",
  arg2  : 5,
  arg4  : false
});
循環(huán)中使用標(biāo)簽

有時(shí)候循環(huán)當(dāng)中嵌套循環(huán),你可能想要退出某一層循環(huán),之前總是用一個(gè)標(biāo)志變量來判斷,現(xiàn)在才知道有更好的方法:

outerloop:
for (var iI=0;iI<5;iI++) {
  if (somethingIsTrue()) {
  // Breaks the outer loop iteration
  break outerloop;
  }
  innerloop:
  for (var iA=0;iA<5;iA++) {
    if (somethingElseIsTrue()) {
    // Breaks the inner loop iteration
    break innerloop;
  }
  }
}  

轉(zhuǎn)載地址:https://my.oschina.net/os2015...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/86795.html

相關(guān)文章

  • 架構(gòu)師之路

    摘要:因?yàn)橛脩舨挥迷诘谝淮芜M(jìn)入應(yīng)用時(shí)下載所有代碼,用戶能更快的看到頁(yè)面并與之交互。譯高階函數(shù)利用和來編寫更易維護(hù)的代碼高階函數(shù)可以幫助你增強(qiáng)你的,讓你的代碼更具有聲明性。知道什么時(shí)候和怎樣使用高階函數(shù)是至關(guān)重要的。 Vue 折騰記 - (10) 給axios做個(gè)挺靠譜的封裝(報(bào)錯(cuò),鑒權(quán),跳轉(zhuǎn),攔截,提示) 稍微改改都能直接拿來用~~~喲吼吼,喲吼吼..... 如何無痛降低 if else 面...

    NikoManiac 評(píng)論0 收藏0
  • JavasScript重難點(diǎn)知識(shí)

    摘要:忍者級(jí)別的函數(shù)操作對(duì)于什么是匿名函數(shù),這里就不做過多介紹了。我們需要知道的是,對(duì)于而言,匿名函數(shù)是一個(gè)很重要且具有邏輯性的特性。通常,匿名函數(shù)的使用情況是創(chuàng)建一個(gè)供以后使用的函數(shù)。 JS 中的遞歸 遞歸, 遞歸基礎(chǔ), 斐波那契數(shù)列, 使用遞歸方式深拷貝, 自定義事件添加 這一次,徹底弄懂 JavaScript 執(zhí)行機(jī)制 本文的目的就是要保證你徹底弄懂javascript的執(zhí)行機(jī)制,如果...

    forsigner 評(píng)論0 收藏0
  • CSS技巧

    摘要:技巧使你的更加專業(yè)這是上關(guān)于技巧的一篇譯文,另外你也可以在本項(xiàng)目看到原文。列舉了一些很實(shí)用的技巧,比如給空內(nèi)容的標(biāo)簽添加內(nèi)容,逗號(hào)分隔列表等等。排序算法看源碼,把它背下來吧排序算法的封裝。主要幫助初學(xué)者更好的掌握排序算法的實(shí)現(xiàn)。 成為專業(yè)程序員路上用到的各種優(yōu)秀資料、神器及框架 成為一名專業(yè)程序員的道路上,需要堅(jiān)持練習(xí)、學(xué)習(xí)與積累,技術(shù)方面既要有一定的廣度,更要有自己的深度。 Java...

    DangoSky 評(píng)論0 收藏0
  • CSS技巧

    摘要:技巧使你的更加專業(yè)這是上關(guān)于技巧的一篇譯文,另外你也可以在本項(xiàng)目看到原文。列舉了一些很實(shí)用的技巧,比如給空內(nèi)容的標(biāo)簽添加內(nèi)容,逗號(hào)分隔列表等等。排序算法看源碼,把它背下來吧排序算法的封裝。主要幫助初學(xué)者更好的掌握排序算法的實(shí)現(xiàn)。 成為專業(yè)程序員路上用到的各種優(yōu)秀資料、神器及框架 成為一名專業(yè)程序員的道路上,需要堅(jiān)持練習(xí)、學(xué)習(xí)與積累,技術(shù)方面既要有一定的廣度,更要有自己的深度。 Java...

    zgbgx 評(píng)論0 收藏0
  • 個(gè)人分享--web前端學(xué)習(xí)資源分享

    摘要:前言月份開始出沒社區(qū),現(xiàn)在差不多月了,按照工作的說法,就是差不多過了三個(gè)月的試用期,準(zhǔn)備轉(zhuǎn)正了一般來說,差不多到了轉(zhuǎn)正的時(shí)候,會(huì)進(jìn)行總結(jié)或者分享會(huì)議那么今天我就把看過的一些學(xué)習(xí)資源主要是博客,博文推薦分享給大家。 1.前言 6月份開始出沒社區(qū),現(xiàn)在差不多9月了,按照工作的說法,就是差不多過了三個(gè)月的試用期,準(zhǔn)備轉(zhuǎn)正了!一般來說,差不多到了轉(zhuǎn)正的時(shí)候,會(huì)進(jìn)行總結(jié)或者分享會(huì)議!那么今天我就...

    sherlock221 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

wizChen

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<