無標題文章

? ?
JavaScrip

腳本語言:

特性:松散(對于開發(fā)者的要求低)

? 如:定義變量

嚴禁語言: int a=30;

松散語言:var a= 30;永遠不會認為開發(fā)者寫代碼有問題

分類:

ECMAScript:

計算機協(xié)會統(tǒng)一標準 只包含了基礎語法部分

版本區(qū)別{

ECMASrcipt5(包含5)之前

ECMASrcipt6(ECMASrcipt2015 簡稱 ES6)包含了所有語言

TypeScript(簡稱TS)

微軟出的js語言>js的超級

ECMASrcipt(語言基礎)

DOM、BOM操作:

DOM:操作頁面中的元素對象(標簽)

批量創(chuàng)建

邏輯

交互

BOM:瀏覽器的操作

上一頁下一頁

歷史記錄

刷新

webapl{

webSocket(及時通訊)

音頻播放器

游戲(canvas)

webVR

游戲引擎:coco? ? 白鷺? 微信小游戲

? ? ? ? ? ? ? ECMASrcipt

語言基礎

1.基礎語法:

預備知識:

(1)語句:通常一行代碼如添加一分號為一條語句

使用英文分號分隔

? (2)變量:目的通過一個名字來表示一個可以改變的值定義方式:var空格 變量名=值? 不賦值? var空格 變量名 war:為關鍵字?

變量名:開發(fā)這起的一個名字

變量名的命名規(guī)則:

不能使用關鍵字定義變量名

不能以數(shù)字開頭

不能以特殊符號開頭

定義變量名要有意義:

駝峰命名法:第一個首字母小寫其他首字母大寫

下劃線命名法

關鍵字(是由語言本事提供的名字,有固定意義的。如var就是定義變量的):var? for while if static let等

意義:

變量名:開發(fā)者起的名字 外號? 標記

值(具體內(nèi)容):數(shù)字 文字(字符串)數(shù)組 對象

(3)

2.opp(面向?qū)ο螅?/p>

JS的引入方式

1.<script>

var a=30;

<script>

2.<script src="js文件位置"> <script>

注釋:

單行:Ctrl+/

多行:ctrl+shift+/

運算符:

算數(shù)運算:+ - * / %(取余)必須數(shù)字與數(shù)字之間運算

數(shù)據(jù)類型:

Number:數(shù)字類型包含浮點和整數(shù)

String:字符串類型只要是使用雙引號或單引號包裹的

boolean:波爾類型;true(對)false(錯)

Array :數(shù)組

Object:對象

Function:函數(shù)

數(shù)據(jù)類型的轉(zhuǎn)換:

字符串轉(zhuǎn)數(shù)字:

轉(zhuǎn)數(shù)字:parseLnt()

轉(zhuǎn)浮點:parseFloat如果使用小數(shù)精度丟失{

不要直接使用小數(shù)

一定要使用:1.乘以100倍精準的級別

}prompr()

輸入內(nèi)容:

使用代碼輸出變量

沒實際意義知識在控制臺輸出一下變量

console.log(a)日志

console.warn(a)警告

console.info(a)詳細詳細信息

調(diào)試方法:

1.console.log(a);日志

2.斷點調(diào)試:在程序中打點組織繼續(xù)執(zhí)行

首先根據(jù)經(jīng)驗定位到大概錯誤位置然后打開瀏覽器中

的Sources點擊要調(diào)試的js文件

在懷疑有錯誤的地方點個點(打斷點

程序重新運行會在斷點位置停止

->鼠標移動到斷點上面的變量

->就會顯示變量的值

如果繼續(xù)拍錯可以打多個斷點

通過播放鍵跳到下一個斷點

通過下一步執(zhí)行下一步代碼

復合運算符:

+= :var a=10;

? ? var b=20;

? ? a = a+=b;

-=:var a=10;

? ? var b=20;

? ? a = a-=b;

*=:var a=10;

? ? var b=20;

? ? a = a*=b;

/= :var a=10;

? ? var b=20;

? ? a = a/=b;

%=:var a=10;

? ? var b=20;

? ? a = a%=b;

++:自己給自己增加一個1加加減減在前先做自增減在做其他運算

加加減減在后先做其他運算(或別的操作)在做自增減

? --:自己給自己減少一個1

對比運算符:結(jié)果為Boolean類型的值分別為true和false。(> < >= <= ==(忽略數(shù)據(jù)的類型如:1=“1”) === (嚴格查看數(shù)據(jù)類型的必須類型與值都相同的如:1與“1”為不相同)!=(不等于不區(qū)分數(shù)據(jù)類型如:1與“1為相同”)!==(區(qū)分數(shù)劇類型如1與1“1”為不相同))

案例:d

分支結(jié)構(gòu):

if(條件)

當條件滿足執(zhí)行此內(nèi)容

if(條件){

}else{

if(條件){

}else if(條件){

}else{

三元運算(三目運算):

經(jīng)常會代替if else語句

常用代碼:if(睡覺){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 做夢


? ? ? ? ? ? ? ? ? ? ? ? }else{

掌握三元運算

? ? }

三元運算:條件?滿足執(zhí)行,不滿足不執(zhí)行

//隨機數(shù)

//Math 數(shù)學函數(shù)

//random 隨機函數(shù)

var num3=Math.random();

console.log(num3);

邏輯運算:

與(&&):所欲條件都必須滿足才算真的;

或(||):兩個條件中只要有一個條件滿足就為真;

非(!):黑白顛倒,對的就是錯的,錯的就是對的。

表示為真

* true

* 1

* 由內(nèi)容的字符串“xx”

* 有值的對象

* 表示為假的

* 0

* false

* null

* nudefineded

* NAN

* 空字符串“”

switch:選擇其中的某一個點子(case)

switch(變量){

case值1:

break;

case值2:

break;

default:

break:不是強制添加如果不添加break程序會繼續(xù)執(zhí)行下面的條件。

循環(huán)結(jié)構(gòu):

1、知道循環(huán)次數(shù)(for)

for(var i=0; i<5; 1++){

var i=0;初始化變量;

i<5;循環(huán)的條件;

i++;更改變量的值

for循環(huán)的執(zhí)行流程

continue:

從continue的開始部分跳出循環(huán)

continue前的不會跳過

道循環(huán)次數(shù)(while)

while:while(條件){循環(huán)體};

do while:不管條件漫步滿足先執(zhí)行一次循環(huán)(計入總循環(huán)次數(shù))公式:do {? }while ()

例: var index=0;

? do {

document.write("1212");

document.write("<br>");

index++;

if (index>10)break;

? }while (1)

函數(shù)

具備某些工能的工具

四種類型:

有返回值:

帶參數(shù)

不帶參數(shù)

無返回值:

帶參數(shù)

不帶參數(shù)

function hanShuMing(函數(shù)名)(? ? ) {

? ? alert("函數(shù)")

}

調(diào)用函數(shù)

hanShuMing():

2.var xx=function (? ? ) {

? ? 函數(shù)體

console.log("xxxxxx")

}

調(diào)用函數(shù)體—>函數(shù)體的代碼才會執(zhí)行

xx(? ? );

內(nèi)置函數(shù){

console.log()

alert()

Math.radom()

prompt()

參數(shù):

形式參數(shù):形參沒有實際意義代表著即將傳進來的實參。

實際參數(shù):實參是個實實在在的一個值

作用域:概念 ——》變量起作用的范圍

局部變量:作用域只在定義的函數(shù)體里面,在函數(shù)外面是不可以使用的。

全局變量:

自執(zhí)行函數(shù):自執(zhí)行函數(shù) 解決作用域的問題(防止多個js文件間變量的互相影響)

(function () {

var num=20;

})()

返回值:帶返回值的函數(shù)是是什么?返回值是什么函數(shù)就表示的是什么

function x(){return}

return(值):放到函數(shù)中:

return有值時:有返回值的函數(shù)

return沒值時:跳出函數(shù)

? ? ? ? ? ? ? 數(shù)組

概念:有序排列的集合

標識數(shù)組中元素位置的叫做下標或索引;

下標;可以通過下標找到數(shù)組中的元素,可以通過下標改變這個位置的值;

數(shù)組中下標是從0開始的;

創(chuàng)建數(shù)組:字面量的方式var a=[? ? ];

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? var b=[? "悟空 ",“八戒”,“和尚” ]

通過類名創(chuàng)建數(shù)組:var arr= new Array(? )

獲取數(shù)字中的元素:數(shù)組名[ 下標 ];var a=["王八","烏龜","甲魚","鱉"];

var b=a[1];

a[0]="健權";

替換(修改)數(shù)組中的元素:數(shù)組名[下標]=新值;

遍歷數(shù)組(把數(shù)組中的元素逐個讀取出來):for循環(huán),forEach;

數(shù)組

1.屬性:長度:(數(shù)組名:length):數(shù)組中有多少個元素->數(shù)字是多少

2.方法

在數(shù)組中最后一個位置插入(刪除)數(shù)據(jù):

1.插入數(shù)據(jù):數(shù)組名+點+push

2.刪除數(shù)組中最后一個;數(shù)組名+點+pop;

在數(shù)組中第一個位置插入(刪除)數(shù)據(jù):

1.插入輸入unshift

2.刪除數(shù)據(jù)shift

翻轉(zhuǎn)數(shù)組(把數(shù)組中的元素順序顛倒):reverse:會返回一個新的數(shù)組

如:var ss=[22,33,77]

var ww=ss.reverse(? );

document.write(ww)

document.write("<br>");

合并數(shù)字;(concat)把兩個或多個數(shù)組合并成一個新的數(shù)組

數(shù)組排序:(sort)數(shù)組+點+函數(shù)(a,b,){return a>b;}

數(shù)組轉(zhuǎn)字符串:

1.toString(萬能法)

2.join(“”)

在數(shù)組中插入一個元素:splice:公式:數(shù)組名+點splice(插入位置(下標),刪除元素數(shù)量,插入的元素(數(shù)據(jù)是什么))

刪除元素:splice公式:數(shù)組名+點 splice(刪除元素位置,刪除元素數(shù)量)->返回的數(shù)組為刪除的那些元素

截取數(shù)組:slice:公式:數(shù)組名+點+slice(開始下標,結(jié)束的下標)

? ? ? ? ? ? ? 字符串

屬性:長度(lenght)

方法:

1.字符串轉(zhuǎn)數(shù)組:split:

2.替換字符串:replace(查詢的字符串,替換的字符串)->會得到一個新的變量

3.查詢字符串:search:(查詢的內(nèi)容)正數(shù)和0為查詢到第一個數(shù)的位置-1為沒有查詢到

4.toLowerCase(轉(zhuǎn)小寫):

5.toUpperCase(轉(zhuǎn)大寫):

6.查詢某個字符在源字符串的位置(indexOf)

7.查詢某個位置的字符(charAt)

8.截?。╯lice)

9.查詢字符串:(match)可用正則

正則表達式:

input:value:輸入框的輸入值

DOM:獲取DOM(html)元素:document.querySelector(點+選擇器的名字)

DOM

獲取DOM元素

1.

document.querySelector("選擇器的名字")

2.

3.

4.

創(chuàng)建DOM元素

刪除DOM

清空DOM

插入文本

插入HTML

添加事件:鼠標事件.鍵盤事件.拖拽事件

? ? ? ? ? ? ? ? ? ? ? ? 日期

日期對象

Date:創(chuàng)建日期對象:獲取當前日期;var data=new Date(? )

new:是通過類名創(chuàng)建的對象

Date:是個日期類

通過日期類創(chuàng)建一個當前的日期

筆記截圖

獲取周日:周日為0;周一為1。。。。。

? ? ? ? 定時器(單位毫秒)

不可以重復使用多個定時器否則定時器的時間會疊加

用完要刪除定時器

刪除延遲定時器clearTimeOut(標記)

1.延遲執(zhí)行:

var 標記 =? setTimeout(執(zhí)行函數(shù),延遲時間)

var bg=document.querySelector(".bg")

var setu=setTimeout(function () {

? bg.style.background="yellow"

? 清除定時器

? clearTimeout(setu);

},1000*2);

2.重復執(zhí)行

js的引入方式;

1.在head中引入(還未在HTML標簽就在js中查-》查不到)

2.在body結(jié)束標簽上面引入(可以避免查找不到HTML)

? ? ? ? ? ? ? ? ? ? ? DOM

1.查詢DOM元素:

(1)document.querySelector(“選擇器的名字”)

特點:查找的是第一個元素

(2)document.querySelectorAll(“選擇器”)

特點:查找偽數(shù)組

(3)ID選擇器不需要加#document.getElementById

特點:查找ID

類選擇器

(4)通過類選擇器? getElementsByClassName("")

(5)document.getElementsByTagName("div")

特點-偽類數(shù)組

2.創(chuàng)件DOM的方法

(1)document.createElement(? "標簽的名字")

3.DOM的操作

(1)把DOM放到父元素里面,

公式:父元素+點+appendChild

( 2? )刪除元素

( 3? )替換元素

? ( 4 )? 復制元素:cloneNode(? )

4設置DOM的樣式:

1.獲取編譯完成的樣式(css里面的樣式)getComputedStyle(dom)

公式DOM.style

5.設置元素的屬性

(1)dom元素點屬性名=屬性值

查詢:dom元素點屬性名

(2)dom元素點setAttribute(屬性名)

查詢DOM元素點getAttribute(" ")

設置屬性:setAttribute·

讀取屬性:getAttribute

//設置類選擇器的名字

.className="ttt"

? ? ? ? ? ? ? ? ? ? 事件

1.鼠標事件

(1)點擊事假:onClick

dom.onClick=function(事件對象){}

(2)移動事件:onmousemove:鼠標的時間對象

pageX:光標在頁面X軸的位置

pageY:? 光標在頁面y軸的位置

(3)鼠標移入事件

onmouseover:先調(diào)用

onmouseenter:后調(diào)用

(4)移除的事件

onmouseseleave:先調(diào)用

onmouseout:后調(diào)用

2.鍵盤事件

(1)onkeydown:(按下鍵盤觸發(fā)的事件)

dom.onkeydown=function(){}

(2)onkeyup:鍵盤按下抬起時觸發(fā)

(3)onkeypress:按鍵盤就觸發(fā)

當鍵盤事件觸發(fā)的時候會獲得一個事件對象(Event)

code:區(qū)分按下的是哪個鍵

keycode:區(qū)分按下的是哪個鍵

3.狀態(tài)事件

input的狀態(tài):光標閃爍的狀態(tài)(onfocus),失去光標的時候(onblue),里面文字發(fā)生改變的時候(onchange,)只要用戶輸入就會改變(oninput)

JSON對象:(json是一種數(shù)據(jù)格式,沒有語言限制)

數(shù)據(jù)格式:{

"鍵":值,(由逗號分隔開)

"鍵":[1,2,3,4,],

js里面的JSON對象

{由? ? 鍵:值,

? ? ? ? ? 鍵:值

XML:(數(shù)據(jù)格式?jīng)]有語言限制)很類似與HTML格式

? ? ? ? ? ? ? ? ? ? ? ? ? 事件監(jiān)聽

1.添加監(jiān)聽事件:

dom點addEventListener(“事件名”,函數(shù))

2.移除監(jiān)聽事件:

dom點remoerEventListener("事件名",函數(shù))

事件技巧:

1.阻止元素的默認行為

event.preventDefault()

例:去掉a標簽刷新頁面(跳轉(zhuǎn))頁面的功能

表單標簽里面的<input type="submit"><input type="rest">


2.事件冒泡或捕獲

事件冒泡:是從內(nèi)向外觸發(fā)(默認行為為事件冒泡)

事件捕獲:從外向內(nèi)觸發(fā)

Event所有事件的先祖

MouseEvent

keyboardEvent

function f1(a,b) {

? ? ? ? //arguments是傳入進去的全部參數(shù)(參數(shù)列表)->數(shù)組

? ? ? ? console.log(arguments[0])

? ? ? ? console.log(a)

? ? }

? ? f1(3,6,9,10)

? ? f1(83,6,9,10,77)

? ? f1(13,6,9,10,77,3,77,98)

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • JAVA面試題 1、作用域public,private,protected,以及不寫時的區(qū)別答:區(qū)別如下:作用域 ...
    JA尐白閱讀 1,250評論 1 0
  • 聲明式渲染 Vue.js 的核心是一個允許采用簡潔的模板語法來聲明式地將數(shù)據(jù)渲染進 DOM 的系統(tǒng) {{ mes...
    dfe8296e7652閱讀 277評論 0 1
  • 網(wǎng)頁基礎總結(jié)(4) 一.網(wǎng)頁基礎 1.選擇器優(yōu)先級關系 !important>ID>類>元素 內(nèi)聯(lián)樣式表>嵌入>外...
    糖心m閱讀 247評論 0 0
  • var new_arrary = arr.filter(callback[, thisArg]) >fil...
    君當日勝貴閱讀 388評論 0 0
  • [toc] ##1、基礎知識>ECMAScript(ES):規(guī)定了JS的一些基礎核心的知識(變量、數(shù)據(jù)類型、語法規(guī)...
    Bazinga2019閱讀 198評論 0 0

友情鏈接更多精彩內(nèi)容