# javascript 總結

# javascript 總結

## 語法
1. 區分大小寫
2. 命名規范
1. 首字母必須是 字母 _ $
2. 其他字符可以是 數字 字母 下劃線 $
3. 避開系統的關鍵字
4. 單詞和單詞連接方式推薦駝峰命名
3. 注釋
1. 單行注釋 //注釋的內容
2. 多行注釋 /*注釋內容*/
4. 語句
1. 要用;結尾(推薦做法)
2. 如果不寫; 那么系統默認以換行作為語句的結尾

## 變量/常量
1. 變量聲明 var
2. 常量聲明 const

## 數據類型
1. typeof 檢測數據類型 a=null;typeof a 可能是object 對于比較老的瀏覽器是function
2. undefined
3. null
4. Boolean
1. true/false
5. Number
1. 數字(正/負/整/小/0/Infinity/-Infinity)
2. NaN NaN==NaN 返回false
6. String
1. 使用單引號或者雙引號來定義
2. 轉義字符\ \n \t \r \' \"
3. 字符串可以通過數組下標的方式來調用字符串對應位置的字符

## 運算符
1. 算術運算符: + - * / % ++ -- +(正) -(反)
2. 字符串: +
3. 比較運算符: > < == === != !== >= <=
4. 邏輯運算符: && || !
5. 位運算符: & | ^ XOR << >> <<< >>>
6. 三元運算符: 條件? 語句1:語句2
7. 賦值: = 帶操作賦值: += -= *= /= %= |= &= ^= <<= >>= <<<= >>>=
8. 其他運算符: . , typeof delete instanceof void

## 流程控制語句
### 分支
#### if語句

```
1. if(條件){執行.....}
2. if(條件){...}else{...}
3. if(條件){...}else if(條件){}
4. if(條件){...}else if(條件){}else{}
5. if語句可以嵌套多層
```

#### switch語句

```
switch(傳入值){
case 值:
執行內容...;
break;
case 值:
....
break;
default:
執行.....
}

```

### 循環
#### for

```
//語句1只執行1次
//執行語句2 當語句2返回true 繼續執行
for(語句1;語句2;語句4){
語句3
}

```

#### while

```
while(條件){...} //條件為真 執行
do{...}while() //先執行一次 再判斷條件是否為真 為真繼續執行

```

#### for...in

```
//遍歷數組或者對象

for(var i in obj){
//i表示 obj 的 下標 鍵名
obj[i] //obj 下標i對應的 值
}
```

## 函數(作用域)

```
function 函數名(){

}

var 變量名 = function(){}

//調用
函數名()
變量名()

(function(形參){})(實參)
(function(形參){}(實參))

函數里邊內部有個arguments 表示 實參對象
```

## 對象
1. 對象聲明

```
//數組
var arr = [];
var arr = new Array();

//對象
var obj = {};
var obj1 = new Object();
var obj2 = new 自定義構造方法();
var obj = {"name1":"zhangsan",name2:"lisi"}
```

2. 構造方法

```
//構造方法
function Person(n){
this.name = n||'小白';
this.say = function(){
alert(this.name)
}
}
```

## 內置對象
### Boolean
### Date

```
getFullYear()//年
getMonth()//月 0-11 當前月份需要+1
getDate()//日
getDay()//星期 0~6 0星期日
getHours()//時
getMinutes()//分
getSeconds()//秒
getMilliseconds()//毫秒
getTime()//時間戳 毫秒級

toString() //以字符串形式輸出
valueOf() //內部存的值
```

### Number

```
toString(進制)
toFixed(n) 顯示n位小數
toExponential(n)顯示n位.后面的數 指數表示法
toPrecision(n) 顯示n位
```

### Math

```
Math.PI //3.1415926535
Math.abs() //取絕對值
Math.ceil() //進一取整
Math.floor() //退一取整
Math.max()//最大值
Math.min()//最小值
Math.pow(x,y)//x的y次冪
Math.random() //0~1的隨機數
//m~n隨機整數
//Math.floor(Math.random()*(n-m+1))+m//建議使用
//Math.ceil(Math.random()*(n-m+1))+m-1
Math.round() //round 四舍五入
Math.sqrt() //求平方根

```

### String

```


trim() //清空兩側的空白

//查找
charAt() // 獲取指定位置上的字符
charCodeAt() //獲取對應位置上的字符的ASCII碼
indexOf(“abc”) //返回子字符串abc在字符串中第一次出現的位置
lastIndexOf(“abc”) //返回子字符串abc在字符串中最后一次出現的位置
match(regexp) //找到一個或多個正則表達式的匹配
search(regexp) //查找與正則表達式相匹配的子字符串

//替換
replace(表達式,替換的字符串) //替換一個與正則表達式相匹配的子串

//截取
split(正則表達式,數組最大長度) //用于把一個字符串分割成字符串的數組
slice(startindex,endindex) //返回一個子字符串
substring(startindex,endindex) //返回一個子字符串
substr(startindex,length) //返回一個子字符串

//轉換
toLowerCase() //將字符串轉換為小寫
toUpperCase() //將字符串轉換為大寫

```


### RegExp

```
exec() //返回匹配內容
test() //判斷是否匹配
```

### Array

```
//添加/刪除
unshift() //從數組頭部添加元素
shift() //從數組頭部刪除一個元素
push() //從尾部添加
pop() //從尾部彈出一個元素
splice() //刪除 替換 或 插入數組元素

//截取
concat() //合并 數組 或 元素 為一個新數組
slice() //返回數組中的一部分

//格式化
toString() //以字符串形式輸出數組
join() //將數組元素以某個字符連接成字符串
reverse() //顛倒數組中元素順序
sort() //排列數組中元素順序

```

### Function (沒用)
### Global

```
parseInt() //強制轉換成int
parseFloat() //強制換行成float
isNaN() //判斷是不是NaN
isFinite() //判斷是不是Infinity
eval() //把字符串當做JS語句執行
escape() //編碼
unescape() //解碼
```

## BOM
### Location 對象 當前文檔url地址對象模型

```
//跳轉頁面 設置 location.href = ""

protocal //協議
hostname //主機域名
port //端口號
pathname //路徑加文件名
search //get參數 ?后面的內容
hash //錨點 #后面的
href //完整url地址


assign() //跳轉
replace() //替換跳轉
reload() //刷新

```

### Navigator 瀏覽器信息

```
appCodeName //代碼名稱
appName //瀏覽器名稱
appVersion //瀏覽器版本號
language //語言
platform //系統
userAgent //用戶請求頭
```

### screen 瀏覽器屏幕信息

```
width //屏幕寬度
height //屏幕高度
availWidth - 可用的屏幕寬度
availHeight - 可用的屏幕高度

```

### history 訪問網頁歷史

```
back() //后退 返回上一個 url
forward() //前進 到下一個 url
go(n) //跳轉到 第 n 個 url
```

### 其他

```
alert("文本") //警告框
confirm("文本") //確認框
prompt("文本","默認值") //提示框

setInterval()
clearInterval()

setTimeout
clearTimeout()

```

## DOM

```

all[] //提供對文檔中所有 HTML 元素的訪問。
forms[] //所有form元素
images[]//所有img元素
links[]//所有a元素

?

//節點獲取
getElementById() //通過id獲取節點
getElementsByTagName() //通過標簽名獲取節點
getElementsByName() //通過name屬性獲取節點

childNodes children
firstChild firstElementChild
lastChild lastElementChild
nextSibling nextElementSibling
previousSibling previousElementSibling
parentNode parentElement

//獲取屬性
attributes //屬性集合
getAttribute("屬性名") //獲取屬性
setAttribute("屬性名","屬性值") //設置屬性
node.removeAttribute("屬性名") //刪除屬性
className

//節點操作
document.createElement() //創建節點
document.createTextNode(); //創建文本節點
parentNode.appendChild() //添加節點
parentNode.insertBefore(newNode,oldNode) //在xx節點前面添加子節點
parentNode.replaceChild(newNode,oldNode) //把xx節點替換上一個新節點
parentNode.removeChild() //刪除節點

//便捷操作 獲取內容
node.innerHTML //獲取標簽里邊所有內容
node.value //獲取表單的值
```

## 事件

```
//鼠標事件
* onclick //單擊
dblclick//雙擊
mousedown//按下
mouseup//抬起
* mouseover //移入
* mouseout//移出
* mousemove//移動

contextmenu//鼠標右鍵

//鍵盤事件
onkeydown//按下
onkeyup//按起
onkeypress//在用戶敲擊按鈕時觸發

//文檔
* onload 加載
* scroll 滾動條
resize //監聽瀏覽器窗口大小改變

//表單
** onsubmit 提交事件
* focus 獲取焦點
* blur 失去焦點
* change 內容改變
onselect 在元素中文本被選中后觸發。
```

### 事件對象

```
onXXX = function(ent){
//獲取事件對象
var e = ent || window.event;//兼容性處理
}

//事件對象的屬性
altKey 返回當事件被觸發時,"ALT" 是否被按下。
button 返回當事件被觸發時,哪個鼠標按鈕被點擊。
* clientX 返回當事件被觸發時,鼠標指針的水平坐標。
* clientY 返回當事件被觸發時,鼠標指針的垂直坐標。
* pageX 相對于頁面的位置
* pageY 相對于頁面的位置
ctrlKey 返回當事件被觸發時,"CTRL" 鍵是否被按下。
metaKey 返回當事件被觸發時,"meta" 鍵是否被按下。
relatedTarget 返回與事件的目標節點相關的節點。
screenX 返回當某個事件被觸發時,鼠標指針的水平坐標。
screenY 返回當某個事件被觸發時,鼠標指針的垂直坐標。
shiftKey 返回當事件被觸發時,"SHIFT" 鍵是否被按下。
* keyCode 返回字符的ascii碼

//取消冒泡
e.cancelBubble = true||e.stopPropagation();

```

## ajax

?

轉載于:https://www.cnblogs.com/zhuozhouzjh/p/5815006.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/286476.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286476.shtml
英文地址,請注明出處:http://en.pswp.cn/news/286476.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

聊聊 C++ 和 C# 中的 lambda 玩法

這幾天在看 C 的 lambda 表達式&#xff0c;挺有意思&#xff0c;這個標準是在 C11標準 加進去的&#xff0c;也就是 2011 年&#xff0c;相比 C# 2007 還晚了個 4 年&#xff0c; Lambda 這東西非常好用&#xff0c;會上癮&#xff0c;今天我們簡單聊一聊。一&#xff1a;語法…

Android之網絡請求通過協程+okhttp的沒有做網絡異常處理導致程序奔潰問題

1 問題 app里面的網絡請求是通過協程+okhttp來實現的,但是沒有做網絡異常處理(域名無法解析、502錯誤等等一系列),導致程序奔潰 2 嘗試 因為app基本上做好了,外面有大幾十個地方調用,然后又有不同的作用域,調用的地方太多了,一開始修改在最外出的網絡請求地方直接加上…

Windows10系統重裝后必不可少的優化步驟

1. 查看系統的激活狀態 Win+R,打開運行,輸入slmgr.vbs -xpr,回車! 可以看到,該系統沒有永久激活,即將過期,過期后部分功能會不可使用,需要重新激活。 2. 徹底關掉Windows Defender 方法一: 打開“命令提示符(管理員)”,然后輸入: reg add "HKEY_LOCAL_MA…

【iVX 初級工程師培訓教程 10篇文拿證】03 事件及猜數字小游戲

目錄 【iVX 初級工程師培訓教程 10篇文拿證】01 了解 iVX 完成新年賀卡 【iVX 初級工程師培訓教程 10篇文拿證】02 數值綁定及自適應網站制作 【iVX 初級工程師培訓教程 10篇文拿證】03 事件及猜數字小游戲 【iVX 初級工程師培訓教程 10篇文拿證】04 畫布及我和 iVX 合照 【iV…

visual studio系列(vs)啟動調試網站使用ip+端口局域網訪問

vs系列工具創建web應用時會自動創建一些配置文件&#xff0c;本文章講的是如何修改配置文件&#xff0c;使vs在啟動運行調試情況下 使用ip端口形式在局域網訪問。本文章使用的是vs2015&#xff0c;.net 4.5。步驟如下&#xff1a;1.使用vs創建好你的web應用&#xff0c;打開項目…

Android studio之編譯提示Could not find :umeng-asms-v1.2.1:.

1 、問題 Could not determine the dependencies of task :app:compileDebugJavaWithJavac. > Could not resolve all task dependencies for configuration :app:debugCompileClasspath.> Could not find :umeng-asms-v1.2.1:.Required by:project :app> Could not …

1-100之間的奇數

#include "stdio.h" int main() {int i0;for(i1;i<100;i){if(i%21){printf("%d ",i);}}return 0; }轉載于:https://blog.51cto.com/zhangxinbei/1718010

計算機與操作系統基礎小結

計算機基礎概念 1946年二月美國&#xff0c;世界上第一臺電子計算機ENIAC誕生&#xff0c;似乎從這一年開始世界便逐漸變得不一樣了。隨著半個世紀的時間&#xff0c;計算機技術蓬勃發展&#xff0c;推動人類進入信息社會。 計算機操作界面&#xff1a; ①圖形用戶界面 ②命令行…

WPF效果第一百八十九篇之又玩Expander+ListBox

上一篇文章已經提前預告了今天要分享的效果,今天接著上一篇的效果接著去實現,還是先來看最終實現的效果:1、關于簡單的布局設計:總結&#xff1a;①③是Expander②④⑤⑥是ListBox2、把上一篇的②這一塊用ListBox替換:<Expander Grid.Column"1" ExpandDirection&q…

作為一個甘肅天水人,我對罐罐茶有一種特殊的情懷

作為一個出生在罐罐茶世家的80后鄉土人&#xff0c;經歷了罐罐茶的發展演變歷史&#xff0c;與罐罐茶結下了不解情緣&#xff0c;下面我就跟大家分享一下劉一哥與罐罐茶的故事吧。 久違的罐罐茶.mp4美麗邂逅 我最早接觸罐罐茶應該是90年代&#xff0c;那個年代家里條件很不好&…

【iVX 初級工程師培訓教程 10篇文拿證】02 數值綁定及自適應網站制作

目錄 【iVX 初級工程師培訓教程 10篇文拿證】01 了解 iVX 完成新年賀卡 【iVX 初級工程師培訓教程 10篇文拿證】02 數值綁定及自適應網站制作 【iVX 初級工程師培訓教程 10篇文拿證】03 事件及猜數字小游戲 【iVX 初級工程師培訓教程 10篇文拿證】04 畫布及我和 iVX 合照 【iV…

將WebApiTestClient添加到ASP.NET Web API幫助頁面

ASP.NET Web API幫助頁面是一種有用的擴展&#xff0c;可為您的Web API自動生成基于Web的文檔。它使調試變得更容易&#xff0c;因為您可以將幫助頁面中的信息復制/粘貼到Fiddler等工具中&#xff0c;以調用Web API服務并檢查響應。現在&#xff0c;如果您可以直接在幫助頁面上…

【LeetCode】3. Longest Substring Without Repeating Characters

題目&#xff1a; Given a string, find the length of the longest substring without repeating characters. Examples: Given "abcabcbb", the answer is "abc", which the length is 3. Given "bbbbb", the answer is "b", with t…

Android之判斷時間戳是不是今天

1 需求 判斷時間戳是不是今天 2、工具代碼 /*** 獲取每日0點時間* @return*/fun getTodayTime(timeStamp: Long): Long {val cal = Calendar.getInstance()cal.timeInMillis = timeStampcal.set(Calendar.HOUR_OF_DAY, 0)cal.set(Calendar.SECOND, 0)cal.set(Calendar.MINUTE,…

ArcGIS實驗教程——實驗二十五:大型商場選址經典案例

ArcGIS實驗視頻教程合集:《ArcGIS實驗教程從入門到精通》(附配套實驗數據) 一、實驗分析 合理的商場位置有利于商家營業,方便人們購物。商場選址問題需要考慮很多因素,如地理位置、居民點分布、停車場分布、交通情況等。綜合把握這些影響因素對商場的選址顯得尤為重要。 …

全球域名商解析新增保有量15強:愛名網落榜

IDC評述網&#xff08;idcps.com&#xff09;11月30日報道&#xff1a;根據DailyChanges公布的最新數據顯示&#xff0c;在2015年11月26日&#xff0c;全球域名解析新增保有量15強排行榜上&#xff0c;共有5家中國域名商。其中&#xff0c;易名中國連續奪冠&#xff0c;新增保有…

大話領域驅動設計——應用層

?概述應用層是基于領域的應?程序用例的實現&#xff0c;應?程序?例可以看作是?戶界?上的?戶交互。這一篇&#xff0c;我將詳細講解應用層組件及用法。總覽應用層包含以下組件&#xff1a;數據傳輸對象&#xff08;DTO)&#xff1a;數據傳輸對象是一個簡單的對象&#xf…

IE8采用IE7模式

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> X-UA-Compatible是針對ie8新加的一個設置&#xff0c;對于ie8之外的瀏覽器是不識別的&#xff0c;這個區別與 content"IE7"在無論頁面是否包含<!DOCTYPE>指令&#…

【iVX 初級工程師培訓教程 10篇文拿證】01 了解 iVX 完成新年賀卡

目錄 【iVX 初級工程師培訓教程 10篇文拿證】01 了解 iVX 完成新年賀卡 【iVX 初級工程師培訓教程 10篇文拿證】02 數值綁定及自適應網站制作 【iVX 初級工程師培訓教程 10篇文拿證】03 事件及猜數字小游戲 【iVX 初級工程師培訓教程 10篇文拿證】04 畫布及我和 iVX 合照 【iV…

ArcGIS實驗教程——實驗二十六:ArcScene實現二維數據的三維顯示

ArcGIS實驗視頻教程合集:《ArcGIS實驗教程從入門到精通》(附配套實驗數據)》 DEM三維顯示: 地形數據+影像數據: 以上效果均是在ArcScene中實現的。 ArcScene允許用戶制作具有透明效果的場景,在場景中能對數據進行瀏覽和交互。ArcAcene支持復雜的3D符號系統及紋理制圖,支…