摘要:是的一個子對象。局部變量在函數(shù)作用域銷毀時,就會被釋放,而全局變量一旦被創(chuàng)建,就不會被釋放,除非頁面關(guān)閉但是隱式全局變量可以被銷毀,沒有使用聲明的全局變量。預(yù)解釋中的變量提升,只會提升到當(dāng)前作用域的最前面,而不是其他作用域。
JS DOM和BOM:
ECMAScript標(biāo)準(zhǔn) js基本語法
DOM 文檔對象模型 DOM提供了方法操作DOM樹上的節(jié)點(diǎn)
BOM 瀏覽器對象模型 通過BOM可以 獲得屏幕分辨率 控制瀏覽器跳轉(zhuǎn) 彈出框
BOM中的頂級對象就是window,DOM中的頂級對象是document。document是window的一個子對象。
window.onload(){}
setInterval() clearInterval()
setTimeout() clearTimeout()
Location 對象
包含的屬性有 hash(地址欄#后的內(nèi)容)、href(地址)、protocol(協(xié)議)、port(端口)、
host(主機(jī)和端口號)、hostname(主機(jī)名字)、pathname(路徑名字)、search(搜索的內(nèi)容:獲取的?后的內(nèi)容)
location.assign() //和location.href一樣的操作
location.replace() //替換的地址,沒有歷史記錄
location.reload() //頁面重新加載
History 對象
history.forward() //前進(jìn)
history.back() //后退
history.go() //正數(shù)就是前進(jìn),負(fù)數(shù)就是后退
DOM對象:
document.getElementById("div"); //返回一個ID屬性為‘div’的對象
document.getElementsByTagName("div"); //返回由所有div標(biāo)簽的組成的數(shù)組
document.getElementsByClassName("div"); //返回所有含有類名為‘div’的元素數(shù)組
document.getElementsByName("div"); //返回查詢元素的 name屬性為‘div’的元素數(shù)組
document.querySelector("a[targe]"); //返回第一個含有target屬性的‘a(chǎn)’元素
document.querySelectorAll(".example"); //返回是多個含有類名為example的元素的數(shù)組
作用域:number / string / boolean / undefined / null (可使用 typeof方法 來判斷基礎(chǔ)對象類型)
引用型數(shù)據(jù)類型:
function / object
引用數(shù)據(jù)類型會開辟出堆內(nèi)存,它們指向的是 內(nèi)存地址。
字符串 之間用 "+" 會拼接字符串,如果其他類型數(shù)據(jù)和字符串拼接,會被轉(zhuǎn)換為字符串,這其中涉及到變量的隱式轉(zhuǎn)換
類型轉(zhuǎn)換:
數(shù)字類型轉(zhuǎn)換:parseInt() / parseFloat() / Number() *(總結(jié):想要轉(zhuǎn)整數(shù)用parseInt(),想要轉(zhuǎn)小數(shù)用parseFloat(),想要轉(zhuǎn)數(shù)字:Number();更嚴(yán)格。)*
其他類型轉(zhuǎn)換:
.toString() / String() / Boolean() NaN 不是一個數(shù)字,或者不是數(shù)字與數(shù)字的計算就會得到 NaN (isNaN() 判斷一個值是不是 NaN) ! 表示非, !false == true 的結(jié)果為true
操作符:
算數(shù)運(yùn)算符:+ - * / % 一元運(yùn)算符:++ -- 二元操作符:&& || 三元操作符: 條件?結(jié)果1 : 結(jié)果2 復(fù)合運(yùn)算符: += -= *= /= %=
流程控制:
if(){ } else if(){ }else{ } switch(){ case : ;default: ; } while(){ } do{ }while() for( ; ; ){ } (break 用來取消后續(xù)循環(huán),continue 用來取消本次循環(huán)) (switch中的條件判斷 使用的是嚴(yán)格模式的全等于)
JS內(nèi)置對象:
實(shí)例方法:通過new的方式創(chuàng)建的對象(實(shí)例對象)來調(diào)用的方法 靜態(tài)方法:直接通過構(gòu)造函數(shù)調(diào)用的方法Array 創(chuàng)建方式有兩種:
var a =[]; //直接通過字面量創(chuàng)建
var a = new Array() //通過構(gòu)造函數(shù)進(jìn)行創(chuàng)建Array對象的靜態(tài)方法:
Array.isArray(對象) //判斷這個對象是不是數(shù)組Array對象的實(shí)例方法:
.concat(數(shù)組,數(shù)組,..) //組合一個新數(shù)組
.every(函數(shù)) //返回布爾值,函數(shù)作為參數(shù)使用,函數(shù)中有三個參數(shù),分別是元素的值,索引值,原來的數(shù)組(沒用)
//數(shù)組中的每個元素都符合條件,才返回true
.filter(函數(shù)); //數(shù)組中復(fù)合條件的元素,組成新數(shù)組
.map(函數(shù)); //每個元素都執(zhí)行這個函數(shù),把執(zhí)行后的結(jié)果重新放在一個新的數(shù)組中
.forEach(函數(shù)) //遍歷數(shù)組用
.push(值); //把值追加到最后了,返回值是追加數(shù)據(jù)后的數(shù)組長度
.pop(); //刪除最后一個元素,返回值就是刪除的這個值
.shift(); //刪除第一個元素,返回值就是刪除的這個值
.unshift(); //向第一個元素前插入新元素,返回值是插入后的長度
.indexOf(元素值); //返回的是索引,沒有則是-1
.join("字符串"); //返回的是一個字符串
.reverse(); //反轉(zhuǎn)數(shù)組
.sort(); //排序
.slice(開始,結(jié)束); //把截取的數(shù)組的值放在一個新的數(shù)組中,但是不包含結(jié)束的索引對應(yīng)的元素值
.splice(開始,要刪的個數(shù),替換的值); //一般是用于刪除數(shù)組中的元素,或者是替換元素,或者是插入元素
Math 對象 :
Math對象的靜態(tài)方法:
Math.PI ---π---
Math.sqrt() ---取平方根---
Math.pow(a,b) ---a的b次方---
Math.E ---自然常數(shù)---
Math.abs() ---絕對值---
Math.ceil() ---向下取整---
Math.floor() ---向上取整---
Math.Max() ---取最大值---
Math.Min() ---取最小值---
Math.random() ---取0-1之間隨機(jī)值(不包括1)---
Date 對象
Date對象的靜態(tài)方法:
Date.now() //獲取當(dāng)前時間Date對象的實(shí)例方法:
.getFullYear() //獲取年份
.getMonth() //獲取月份從0開始
.getDate() //獲取日
.getHours() //獲取小時
.getMinutes() //獲取分鐘
.getSeconds() //獲取秒數(shù)
.getDay() //獲取星期數(shù)
.toLocaleDateString() //"2019/1/25"
.toLocaleTimeString() //"下午2:20:26"
.valueOf() //1548397226024
.toString() //"Fri Jan 25 2019 14:20:26 GMT+0800 (中國標(biāo)準(zhǔn)時間)"
String 對象
字符串可以看作是由很多字符組成的數(shù)組,字符串有不可變的特性,字符串的值之所以看起來是改變的,那是因?yàn)橹赶蚋淖兞?并不是真的值改變了。字符串的常用屬性:
.length 字符串長度
.charAt(索引) //返回值是指定索引位置的字符串,超出索引,結(jié)果是空字符串
.concat(字符串1,字符串2,...); //返回的是拼接之后的新的字符串
.indexOf(要找的字符串,開始的索引值); //返回的是這個字符串的索引值,沒找到則返回-1
.lastIndexOf(要找的字符串); //從后向前找,但是索引仍然是從左向右的方式,找不到則返回-1
.replace("原來的字符串","新的字符串");//用來替換字符串的
.slice(5,10); //從索引5的位置開始提取,到索引為10的前一個結(jié)束,沒有10,并返回這個提取后的字符串
.split("字符串",切割后留下的個數(shù)); //切割字符串
.substr(開始的位置,個數(shù)); //返回的是截取后的新的字符串
.substring(開始的索引,結(jié)束的索引) //返回截取后的字符串,不包含結(jié)束的索引的字符串
.toLowerCase(); //轉(zhuǎn)小寫
.toLocaleUpperCase() 轉(zhuǎn)大寫
.toUpperCase(); //轉(zhuǎn)大寫
.trim(); //干掉字符串兩端的空格
分為全局作用域和局部作用域,根據(jù)所在的作用域不同,變量又分為全局變量和局部變量。此外,還有塊級作用域,被"{ }"包裹就可以看成一個塊,其實(shí)的變量定義,使用var 定義可以被外部使用, 使用 const、let 不可以被外部使用。
局部變量在函數(shù)作用域銷毀時,就會被釋放,而全局變量一旦被創(chuàng)建,就不會被釋放,除非頁面關(guān)閉(但是隱式全局變量可以被銷毀,沒有使用var聲明的全局變量)。
在所有作用域創(chuàng)建的時候,js引擎會有一個處理,預(yù)解釋,它所做的事,就是提前把所有的變量聲明了,所有的函數(shù)聲明并定義了(所以你可以在定義函數(shù)之前來調(diào)用這個函數(shù))。
預(yù)解釋中的變量提升,只會提升到當(dāng)前作用域的最前面,而不是其他作用域。
預(yù)解析會分段(多對的script標(biāo)簽中函數(shù)重名,預(yù)解析的時候不會沖突)。
JSON對象:一組無序?qū)傩缘募系逆I值對,屬性的值可以是任意類型,這就是對象。JSON也是一個對象,數(shù)據(jù)都是成對的,一般json格式的數(shù)據(jù)無論是鍵還是值都是用雙引號括起來的。
JSON對象擁有兩個方法,parseInt() (將字符串轉(zhuǎn)換為JSON對象)和 stringify() (將JSON對象轉(zhuǎn)換為字符串),這兩個一般用于 數(shù)據(jù)存儲或者與后臺交互。
遍歷對象:
for(var key in json ){ console.log(key +"===========" + json[key]); }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/108975.html
摘要:聲明聲明本篇內(nèi)容梳理自以下幾個來源網(wǎng)站的文檔中文網(wǎng)感謝大佬們的分享。這個時候,預(yù)處理器就出現(xiàn)了,其實(shí)應(yīng)該是說和這類語言出現(xiàn)了。聲明 本篇內(nèi)容梳理自以下幾個來源: Github:smyhvae/web Bootstrap網(wǎng)站的 less 文檔 Sass中文網(wǎng) 感謝大佬們的分享。 正文-CSS預(yù)處理(less&Sass) CSS預(yù)處理 什么是 CSS 預(yù)處理?為什么要有 CSS 預(yù)處理? 這...
摘要:個人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現(xiàn)在已經(jīng)一年的時間了,由于工作比較忙,更新緩慢,后面還是會繼更新,現(xiàn)將已經(jīng)寫好的文章整理一個目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個人前端文章整理 從最開始萌生寫文章的想法,到著手...
摘要:題目使用能得到哪些類型和的選擇中有哪些內(nèi)置函數(shù)變量按存儲方式分為哪些類型,并描述其特點(diǎn)如何理解知識點(diǎn)值類型和引用類型值類型引用類型對象,數(shù)組,函數(shù)值類型直接把值存儲在堆中,把賦值給在內(nèi)存中是又給開辟了一塊新的空間,存儲了同樣的值。 1.題目 1.JS使用typeof能得到哪些類型 === 和 == 的選擇 JS中有哪些內(nèi)置函數(shù) JS變量按存儲方式分為哪些類型,并描述其特點(diǎn) 如何理解J...
摘要:面向?qū)ο缶幊虒ο蟮脑椒ǚ殖蓛深愖陨淼姆椒o態(tài)方法和的實(shí)例方法。的靜態(tài)方法方法與,參數(shù)是對象,返回一個數(shù)組,數(shù)組的值是改對象自身的所有屬性名區(qū)別在于返回可枚舉的屬性,返回不可枚舉的屬性值。 面向?qū)ο缶幊?Objects對象的原生方法分成兩類:Object自身的方法(靜態(tài)方法)和Object的實(shí)例方法。注意Object是JavaScript的原生對象,所有的其他對象都是繼承自O(shè)bjec...
閱讀 1010·2021-09-30 09:58
閱讀 2840·2021-09-09 11:55
閱讀 2006·2021-09-01 11:41
閱讀 1000·2019-08-30 15:55
閱讀 3360·2019-08-30 12:50
閱讀 3502·2019-08-29 18:37
閱讀 3302·2019-08-29 16:37
閱讀 2020·2019-08-29 13:00