摘要:系統(tǒng)內(nèi)部會自動調(diào)用函數(shù)。因此除了以下五個值,其他都是自動轉(zhuǎn)為??兆址詣愚D(zhuǎn)換為字符串遇到預(yù)期為字符串的地方,就會將非字符串的值自動轉(zhuǎn)為字符串。字符串的自動轉(zhuǎn)換,主要發(fā)生在字符串的加法運算時。
URL后面#號是代表什么?
# 代表頁面中的某個位置,也稱為地址hash值
#XX 作用當(dāng)前可視區(qū)域移動到頁面xx位置
# 僅對瀏覽器起作用,對服務(wù)器無用,所以HTTP請求不包括#(#之后的字符都不會被發(fā)送到服務(wù)器端。)
改變#不觸發(fā)網(wǎng)頁重載
改變#會改變?yōu)g覽器的訪問歷史
如何獲取URL中#號的值?使用window.location.hash這個屬性可讀可寫
如何監(jiān)聽URL中#號值的變化onhashchange事件(IE8+、Firefox 3.6+、Chrome 5+、Safari 4.0+支持該事件。)
window.addEventListener("hashchange", function(){ var hash = window.location.hash.slice(1); });瀏覽器中的localStorage如何存???
localStorage存值
localStorage.setItem(key,val);
localStorage取值
var data = localStorage.getItem(key);傳統(tǒng)表單提交前的數(shù)據(jù)校驗如何實現(xiàn)?
使用表單提交事件onSubmit,返回ture,表單繼續(xù)提交,返回false,表單終止提交
function userEdit() { var frm = document.forms["formEdit"]; var email = frm.elements["email"].value; var msg = ""; var reg = null; var passwd_answer = frm.elements["passwd_answer"] ? Utils.trim(frm.elements["passwd_answer"].value) : ""; var sel_question = frm.elements["sel_question"] ? Utils.trim(frm.elements["sel_question"].value) : ""; if (email.length == 0) { msg += email_empty + " "; } else { if ( ! (Utils.isEmail(email))) { msg += email_error + " "; } } if (passwd_answer.length > 0 && sel_question == 0 || document.getElementById("passwd_quesetion") && passwd_answer.length == 0) { msg += no_select_question + " "; } for (i = 7; i < frm.elements.length - 2; i++) // 從第七項開始循環(huán)檢查是否為必填項 { needinput = document.getElementById(frm.elements[i].name + "i") ? document.getElementById(frm.elements[i].name + "i") : ""; if (needinput != "" && frm.elements[i].value.length == 0) { msg += "- " + needinput.innerHTML + msg_blank + " "; } } if (msg.length > 0) { alert(msg); return false; } else { return true; } }數(shù)據(jù)類型轉(zhuǎn)換規(guī)則
自動轉(zhuǎn)換為布爾值
JavaScript 遇到預(yù)期為布爾值的地方(比如if語句的條件部分),就會將非布爾值的參數(shù)自動轉(zhuǎn)換為布爾值。系統(tǒng)內(nèi)部會自動調(diào)用Boolean函數(shù)。
因此除了以下五個值,其他都是自動轉(zhuǎn)為true。
undefined null 0 NaN ""(空字符串)
自動轉(zhuǎn)換為字符串
JavaScript 遇到預(yù)期為字符串的地方,就會將非字符串的值自動轉(zhuǎn)為字符串。具體規(guī)則是,先將復(fù)合類型的值轉(zhuǎn)為原始類型的值,再將原始類型的值轉(zhuǎn)為字符串。
字符串的自動轉(zhuǎn)換,主要發(fā)生在字符串的加法運算時。當(dāng)一個值為字符串,另一個值為非字符串,則后者轉(zhuǎn)為字符串。
"5" + 1 // "51" "5" + true // "5true" "5" + false // "5false" "5" + {} // "5[object Object]" "5" + {a:12} // "5[object Object]" "5" + [] // "5" "5" + [1,2] // "51,2" "5" + function (){} // "5function (){}" "5" + undefined // "5undefined" "5" + null // "5null"
自動轉(zhuǎn)換為數(shù)值
JavaScript 遇到預(yù)期為數(shù)值的地方,就會將參數(shù)值自動轉(zhuǎn)換為數(shù)值。系統(tǒng)內(nèi)部會自動調(diào)用Number函數(shù)。
除了加法運算符(+)有可能把運算子轉(zhuǎn)為字符串,其他運算符都會把運算子自動轉(zhuǎn)成數(shù)值。
"5" - "2" // 3 "5" * "2" // 10 true + 3 // 4 true - 1 // 0 false - 1 // -1 "1" - 1 // 0 "5" * [] // 0 false / "5" // 0 "abc" - 1 // NaN null + 1 // 1 undefined + 1 // NaN // 對象 -> NaN // 數(shù)組 1、空數(shù)組 -> 0 2、只有一個元素數(shù)組(數(shù)值) -> 數(shù)值 3、只有一個元素數(shù)組(數(shù)值字符串) -> 數(shù)值 4、多個元素數(shù)組 -> NaN // 函數(shù) -> NaN
注意:null 轉(zhuǎn)為數(shù)值時為 0,而 undefined 轉(zhuǎn)為數(shù)值時為 NaN。比較運算(==) - 數(shù)據(jù)類型轉(zhuǎn)換
記住特例:
null == underfined (true)
null == null (true)
underfined == underfined (true)
NaN == NaN (false)
除了上面這2種要記住,只有存在null、underfined、NaN其中一個,比較都是返回fasle
==兩邊值類型相同時,無需轉(zhuǎn)換,不同時,自動轉(zhuǎn)換(全轉(zhuǎn)成數(shù)值類型)
// 當(dāng)比較的數(shù)據(jù)類型相同時 Number / String / Boolean ---> true 對象 / 數(shù)組 / 函數(shù) ---> false null / underfined ---> true // 當(dāng)比較的數(shù)據(jù)類型不相同時(轉(zhuǎn)成數(shù)值類型Number) 一邊是Number / String / Boolean,另一邊是null / underfined 都為falseJS數(shù)組也可以存非數(shù)值Key
最開始認(rèn)識的JS數(shù)組
var arr = ["234",123,{"name":"xiaoming"},ture]; // 修改 arr[0]="Opel";
最后發(fā)現(xiàn)JS數(shù)組也可以像PHP數(shù)組一樣,可以存key
var array = new Array(); array["first"] = "my"; array["second"] = "name"; array["third"] = "is"; var arr = []; arr["first"] = "my"; arr["second"] = "name"; arr["third"] = "is"; // 打印出數(shù)組:["first":"my","second":"name","third":"is"] // 使用如下: array["first"]
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/88339.html
摘要:后端和移動性能優(yōu)化需要的時間較長,出成果較慢。大型網(wǎng)站上,一般通過什么方式監(jiān)控性能的用戶端主要是真機(jī)監(jiān)測監(jiān)測,都屬于真實用戶監(jiān)測。目前主要有以下兩種類型,,最終用戶性能監(jiān)測。,,真實用戶性能監(jiān)測。 showImg(https://segmentfault.com/img/bVAbWm);@tanwen110 (唐文),曾負(fù)責(zé)騰訊四大平臺之一網(wǎng)絡(luò)媒體平臺的整體運維、運營規(guī)劃工作;曾任百度...
摘要:主要特性模板渲染響應(yīng)式雙向數(shù)據(jù)綁定組件化開發(fā)路由虛擬好處初始視圖沒有優(yōu)勢,反而中間多了一層虛擬,所以性能沒有提高更新視圖優(yōu)勢明顯減少重復(fù)生成與刪除操作,減少查詢定位元素的操作,能修改操作完成的就絕不使用生成與刪除來操作腳手架是什么有什么作 vuejs主要特性? 模板渲染 響應(yīng)式雙向數(shù)據(jù)綁定 組件化開發(fā) 路由 虛擬DOM好處? 初始視圖沒有優(yōu)勢,反而中間多了一層虛擬DOM,所以性能...
什么是樹 現(xiàn)實中樹隨處可見;在計算機(jī)世界,樹就是一種分層結(jié)構(gòu)的抽象模型?! ∪缦聢D所示: 樹結(jié)構(gòu)的可以用在很多情景,就如下圖公司的組織架構(gòu),用樹就可以表達(dá)出來,如下圖: 組織架構(gòu)只是其中之一,比如族譜、省市等用樹的結(jié)構(gòu)形式展現(xiàn)是完全可以。 樹的術(shù)語 樹有很多的術(shù)語,如下圖: 樹:n(n≥0)個節(jié)點所構(gòu)成的有限集合,當(dāng)n=0時,稱為空樹; 節(jié)點的度:節(jié)點的子樹個數(shù),例如B節(jié)點的度就...
摘要:基礎(chǔ)原型原型鏈構(gòu)造函數(shù)默認(rèn)有這一行張三李四構(gòu)造函數(shù)擴(kuò)展其實是的語法糖其實是的語法糖其實是使用判斷一個函數(shù)是否是一個變量的構(gòu)造函數(shù)原型規(guī)則和示例所有的引用類型數(shù)組對象函數(shù),都具有對象屬性即可自有擴(kuò)展的屬性,除外所有的引用類型數(shù)組對象函數(shù), JavaScript基礎(chǔ) —— 原型&&原型鏈 構(gòu)造函數(shù) function Foo(name, age) { this.name = na...
我們說下想要實現(xiàn),一副牌里有54張,我們可以知道 3 - 2 的牌總共有13張,這分為4個花色是 ?? ?? ?? ?? 另外加上2個大小王!第一步:形成一個數(shù)組, 就要寫一個函數(shù),利用牌數(shù)量和花色,這樣可以用來形成一個雙重循環(huán)將 number 里面的內(nèi)容 和 flower 里面的內(nèi)容 進(jìn)行一個循環(huán)嵌入?最后在用 push 生成一個對象放到數(shù)組的后面?再到最后放入 大小王 ?! onstnu...
閱讀 1257·2021-11-08 13:25
閱讀 1449·2021-10-13 09:40
閱讀 2781·2021-09-28 09:35
閱讀 744·2021-09-23 11:54
閱讀 1136·2021-09-02 15:11
閱讀 2442·2019-08-30 13:18
閱讀 1677·2019-08-30 12:51
閱讀 2696·2019-08-29 18:39