javascript
复习JavaScript随手记
數(shù)據(jù)類型
基本類型
number類型,包含整數(shù)浮點(diǎn)數(shù)
NaN和自己都不相等,涉及NaN的計(jì)算結(jié)果都是NaN
isNaN()函數(shù)用于判斷一個(gè)數(shù)是不是NaN
引用類型
object類型
function類型 繼承自object
object類型定義了prototype屬性
可以通過(guò)它動(dòng)態(tài)給對(duì)象綁定方法和屬性
內(nèi)置對(duì)象
String
封裝了很多方法,如 split() replace(),indexof(),includes()
Array
JS中的數(shù)組,在數(shù)組中可以保持任何類型的數(shù)據(jù),并且數(shù)組的長(zhǎng)度會(huì)自動(dòng)的增加
創(chuàng)建數(shù)組對(duì)象:
- 方式1:用這種方式創(chuàng)建數(shù)組的時(shí)候我們并沒(méi)有指明數(shù)組元素的類型和數(shù)組對(duì)象的長(zhǎng)度
var arr = new Array(); 方式2:用這種方式創(chuàng)建數(shù)組的時(shí)候我們指明了數(shù)組對(duì)象的長(zhǎng)度
var arr = new Array(5);方式3:用這種方式創(chuàng)建數(shù)組的時(shí)候我們指明了數(shù)組對(duì)象的長(zhǎng)度
var arr = new Array("Hello", "World", 23, 5.6);方式4:
var arr = ["Hello", "World", 23, 6.3, true, false, new Date()];
Date
常用方法
> var d=new Date(); undefined > d 2019-01-26T11:13:49.912Z > d.getTime(); 1548501229912 > d.toString(); 'Sat Jan 26 2019 19:13:49 GMT+0800 (GMT+08:00)' > d.toLocaleString(); '2019-1-26 19:13:49' >Math
注意:JS中的Math類和Java中的Math類類似.都是用來(lái)執(zhí)行某些算術(shù)操作的
都是不能創(chuàng)建對(duì)象的.類似于Java中,通過(guò)類名.xxx,類名.xxx()調(diào)用屬性和方法
Regexp
正則表達(dá)式就是專門來(lái)處理String數(shù)據(jù)的.按照特定的規(guī)則,用正則元素指定一個(gè)有規(guī)則的模板
(例如郵箱的規(guī)則),然后測(cè)試某個(gè)String是否符合這個(gè)規(guī)則.(也就是測(cè)試某個(gè)String是否符合郵箱的規(guī)則)
使用方式:
創(chuàng)建正則對(duì)象
調(diào)用test()方法
被測(cè)試字符串滿足正則規(guī)則返回true
// 測(cè)試參數(shù)string是否是有效的中文字符// JS中字符是采用UniCode編碼的,每個(gè)國(guó)家的字符都在在UniCode編碼的某個(gè)范圍之內(nèi)function checkChinaese(str) {var re = "[\u4e00-\u9fa5]"; // 中文的編碼范圍var regExp = new RegExp(re); // 創(chuàng)建正則表達(dá)式對(duì)象if (regExp.test(str)) {return true;} else {return false;}}創(chuàng)建正則對(duì)象的方式:
數(shù)據(jù)類型轉(zhuǎn)換
typeof()函數(shù)檢查數(shù)據(jù)的類型
js和python一樣會(huì)自動(dòng)將數(shù)據(jù)轉(zhuǎn)換成boolean類型用于條件表達(dá)式
轉(zhuǎn)換規(guī)則: 0 NaN "" undefined null ->false
底層實(shí)現(xiàn)是調(diào)用了Boolean()函數(shù)
const PI = 3.14;if (PI){console.log("PI is true"); }非數(shù)值類型轉(zhuǎn)數(shù)值類型
常用parseInt()``parseFloat()將string轉(zhuǎn)數(shù)值
非string轉(zhuǎn)string
null,undefined,NaN的比較
undefined與null是相等;
NaN與任何值都不相等,與自己也不相等。
變量聲明
var
聲明變量
const
聲明常量,必須賦初始值,且不能修改.
let
聲明局部變量
運(yùn)算符
==
JS中的== 和java中的== 相同點(diǎn)
JS中的== 和java中的== 不同點(diǎn)
- 下面這種寫法在java中是錯(cuò)誤的.但是在JS中是可以的.在js會(huì)吧兩個(gè)不同類型的變量轉(zhuǎn)換成相同的類型,然后再去比較
- 轉(zhuǎn)換的規(guī)則如下:當(dāng)兩個(gè)運(yùn)算數(shù)的類型不同時(shí):將他們轉(zhuǎn)換成相同的類型,
- 1)一個(gè)數(shù)字與一個(gè)字符串,字符串轉(zhuǎn)換成數(shù)字之后,進(jìn)行比較。
- 2)true轉(zhuǎn)換為1、false轉(zhuǎn)換為0,進(jìn)行比較。
===這是java沒(méi)有的.具體的用法:
- 只有兩個(gè)變量的類型一致的時(shí)候,才會(huì)去比較.如果兩個(gè)變量的類型不一致則直接返回false
- === 既要比較變量的類型,又要比較變量的值
delete
delete運(yùn)算符的使用,有三種形式
void指定要計(jì)算一個(gè)表達(dá)式但是不返回值
href="javascript:void(0)" 不會(huì)重新刷新頁(yè)面
函數(shù)
js沒(méi)有函數(shù)重載
聲明方式1
function add(x, y){return x +y; } //形參 不用var/let/const 也沒(méi)有類型,不用有返回值類型,只能返回1個(gè)值聲明方式2
add = function (a, b) {return a +b; };流程控制
switch
swich語(yǔ)句的條件是任何類型的變量
var s1 = "hello"; switch(s1){case "hello":console.log("hello world");break;case "world":console.log("world");break;default:console.log("上述條件都不滿足的情況");break; }for
常規(guī)for循環(huán)
for (let i = 0; i < 10; i++) {console.log("老婆,我想你"); }for in (類似python中的for in 但是jsforin 只能取到Index)
const array = [3, 6, 8, 9, "呵呵", false]for (let index in array) {console.log(array[index]); }while/do while/if和java一樣
JSON
eval()函數(shù)
我們把一段有效的JS代碼放到了一個(gè)String中
eval()函數(shù)就可以解析并執(zhí)行String中有效的js代碼
JSON定義語(yǔ)法
JavaScript對(duì)象標(biāo)記,可以簡(jiǎn)化自定義對(duì)象的使用過(guò)程,定義并實(shí)例化一個(gè)js對(duì)象
JSON語(yǔ)法 : var 變量 = {
屬性: 屬性值,
屬性: 屬性值,
屬性: 屬性值 // 注意:最后一個(gè)語(yǔ)句后面沒(méi)有,
};
屬性值 可以是 任何類型,(當(dāng)然也可以是數(shù)組了)
屬性的訪問(wèn)方式:
定義有方法的JSON對(duì)象
function sayHi(name) {console.log("你好," + name + "!!"); }var stu = {name: '張小三', age: 12, sayHello: sayHi}stu.sayHello("小明");定義復(fù)雜的JSNO對(duì)象,屬性名可以用字符串,也可以不用.
var per = {"name": "張三","addr": { // 地址的屬性是另外一個(gè)JSON對(duì)象"city": "北京","street": "大興區(qū)","zipcode": "100012"},"aihao": ["抽煙", "喝酒", "燙頭"] // 愛(ài)好屬性的值是一個(gè)數(shù)組};使用JSON來(lái)傳輸數(shù)據(jù)
// 下面這個(gè)string就是從服務(wù)器端返回的json格式的stringvar str = 'var user ={"name": "張三",age : 23,"address":"北京市大興區(qū)"}';// 使用eval函數(shù)解析并執(zhí)行這個(gè)從服務(wù)器端返回的stringeval(str)// 訪問(wèn)對(duì)象的屬性console.log("user.name=" + user.name + ",age=" + user.age + ",address=" + user.address);轉(zhuǎn)載于:https://www.cnblogs.com/endurance9/p/10324730.html
總結(jié)
以上是生活随笔為你收集整理的复习JavaScript随手记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 沃尔玛购物卡余额怎么查询?六招轻松查询
- 下一篇: JavaScript基础01