摘要:系統內部會自動調用函數。因此除了以下五個值,其他都是自動轉為。空字符串自動轉換為字符串遇到預期為字符串的地方,就會將非字符串的值自動轉為字符串。字符串的自動轉換,主要發生在字符串的加法運算時。
URL后面#號是代表什么?
# 代表頁面中的某個位置,也稱為地址hash值
#XX 作用當前可視區域移動到頁面xx位置
# 僅對瀏覽器起作用,對服務器無用,所以HTTP請求不包括#(#之后的字符都不會被發送到服務器端。)
改變#不觸發網頁重載
改變#會改變瀏覽器的訪問歷史
如何獲取URL中#號的值?使用window.location.hash這個屬性可讀可寫
如何監聽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);傳統表單提交前的數據校驗如何實現?
使用表單提交事件onSubmit,返回ture,表單繼續提交,返回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++) // 從第七項開始循環檢查是否為必填項 { 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; } }數據類型轉換規則
自動轉換為布爾值
JavaScript 遇到預期為布爾值的地方(比如if語句的條件部分),就會將非布爾值的參數自動轉換為布爾值。系統內部會自動調用Boolean函數。
因此除了以下五個值,其他都是自動轉為true。
undefined null 0 NaN ""(空字符串)
自動轉換為字符串
JavaScript 遇到預期為字符串的地方,就會將非字符串的值自動轉為字符串。具體規則是,先將復合類型的值轉為原始類型的值,再將原始類型的值轉為字符串。
字符串的自動轉換,主要發生在字符串的加法運算時。當一個值為字符串,另一個值為非字符串,則后者轉為字符串。
"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"
自動轉換為數值
JavaScript 遇到預期為數值的地方,就會將參數值自動轉換為數值。系統內部會自動調用Number函數。
除了加法運算符(+)有可能把運算子轉為字符串,其他運算符都會把運算子自動轉成數值。
"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 // 數組 1、空數組 -> 0 2、只有一個元素數組(數值) -> 數值 3、只有一個元素數組(數值字符串) -> 數值 4、多個元素數組 -> NaN // 函數 -> NaN
注意:null 轉為數值時為 0,而 undefined 轉為數值時為 NaN。比較運算(==) - 數據類型轉換
記住特例:
null == underfined (true)
null == null (true)
underfined == underfined (true)
NaN == NaN (false)
除了上面這2種要記住,只有存在null、underfined、NaN其中一個,比較都是返回fasle
==兩邊值類型相同時,無需轉換,不同時,自動轉換(全轉成數值類型)
// 當比較的數據類型相同時 Number / String / Boolean ---> true 對象 / 數組 / 函數 ---> false null / underfined ---> true // 當比較的數據類型不相同時(轉成數值類型Number) 一邊是Number / String / Boolean,另一邊是null / underfined 都為falseJS數組也可以存非數值Key
最開始認識的JS數組
var arr = ["234",123,{"name":"xiaoming"},ture]; // 修改 arr[0]="Opel";
最后發現JS數組也可以像PHP數組一樣,可以存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"; // 打印出數組:["first":"my","second":"name","third":"is"] // 使用如下: array["first"]
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/88339.html
摘要:后端和移動性能優化需要的時間較長,出成果較慢。大型網站上,一般通過什么方式監控性能的用戶端主要是真機監測監測,都屬于真實用戶監測。目前主要有以下兩種類型,,最終用戶性能監測。,,真實用戶性能監測。 showImg(https://segmentfault.com/img/bVAbWm);@tanwen110 (唐文),曾負責騰訊四大平臺之一網絡媒體平臺的整體運維、運營規劃工作;曾任百度...
摘要:主要特性模板渲染響應式雙向數據綁定組件化開發路由虛擬好處初始視圖沒有優勢,反而中間多了一層虛擬,所以性能沒有提高更新視圖優勢明顯減少重復生成與刪除操作,減少查詢定位元素的操作,能修改操作完成的就絕不使用生成與刪除來操作腳手架是什么有什么作 vuejs主要特性? 模板渲染 響應式雙向數據綁定 組件化開發 路由 虛擬DOM好處? 初始視圖沒有優勢,反而中間多了一層虛擬DOM,所以性能...
什么是樹 現實中樹隨處可見;在計算機世界,樹就是一種分層結構的抽象模型。 如下圖所示: 樹結構的可以用在很多情景,就如下圖公司的組織架構,用樹就可以表達出來,如下圖: 組織架構只是其中之一,比如族譜、省市等用樹的結構形式展現是完全可以。 樹的術語 樹有很多的術語,如下圖: 樹:n(n≥0)個節點所構成的有限集合,當n=0時,稱為空樹; 節點的度:節點的子樹個數,例如B節點的度就...
摘要:基礎原型原型鏈構造函數默認有這一行張三李四構造函數擴展其實是的語法糖其實是的語法糖其實是使用判斷一個函數是否是一個變量的構造函數原型規則和示例所有的引用類型數組對象函數,都具有對象屬性即可自有擴展的屬性,除外所有的引用類型數組對象函數, JavaScript基礎 —— 原型&&原型鏈 構造函數 function Foo(name, age) { this.name = na...
我們說下想要實現,一副牌里有54張,我們可以知道 3 - 2 的牌總共有13張,這分為4個花色是 ?? ?? ?? ?? 另外加上2個大小王!第一步:形成一個數組, 就要寫一個函數,利用牌數量和花色,這樣可以用來形成一個雙重循環將 number 里面的內容 和 flower 里面的內容 進行一個循環嵌入?最后在用 push 生成一個對象放到數組的后面?再到最后放入 大小王 。 constnu...
閱讀 1241·2021-11-08 13:25
閱讀 1440·2021-10-13 09:40
閱讀 2774·2021-09-28 09:35
閱讀 736·2021-09-23 11:54
閱讀 1123·2021-09-02 15:11
閱讀 2431·2019-08-30 13:18
閱讀 1668·2019-08-30 12:51
閱讀 2686·2019-08-29 18:39