js入門基礎(chǔ)語(yǔ)法
js入門基礎(chǔ)語(yǔ)法
什么是javaScript
概述
javaScript是世界上最流行的一門腳本語(yǔ)言
javaScript是一門很隨意的語(yǔ)言 有句話叫做如果可以重新來(lái)過(guò)我就只愿意學(xué)javaScript
足夠簡(jiǎn)單可以寫前端也可以寫后端
java和javaScript沒(méi)關(guān)系知識(shí)名字恰好比較像 蹭java的熱度
歷史
博客JavaScript的起源故事-CSDN博客
javaScript從開(kāi)發(fā)到上線10天
ECMAScript他可以理解成javaScript的一個(gè)標(biāo)準(zhǔn)
最新的版本語(yǔ)句到了es6版本了,但是大部分的瀏覽器還停留在es5代碼上 這就使得開(kāi)發(fā)環(huán)境和線上環(huán)境,版本不一致
快速入門
引入javaSciprt
內(nèi)部標(biāo)簽
<script>
//``````
</script>
外部引入
abs.js
//
test.html
<script src="abs.js"></script>
基本語(yǔ)法入門
<script>
// 1.定義變量 變量類型 變量名=值;
var score=71;
alert( score);
// 2.條件控制
if(score>60&&score<80){
alert("及格");
}else if(score>=80){
alert("優(yōu)秀");
}else{
alert("不及格");
}
//console.log(score) 在瀏覽器的控制臺(tái)打印變量 相當(dāng)于java中發(fā)sout
</script>

數(shù)據(jù)類型
變量
var 王者榮耀="倔強(qiáng)青銅"http://只有數(shù)字不能大頭
number
js不區(qū)分小數(shù)和整數(shù),Number
123 //整數(shù)
123.1 //浮點(diǎn)數(shù)
1.123e3 //科學(xué)計(jì)數(shù)法
-99 //負(fù)數(shù)
NaN // not anumber
Infinity //表示無(wú)線大
字符串
"zbc" 'zbc'
布爾值
true false
邏輯運(yùn)算
&& 兩個(gè)都為真
|| 一個(gè)為真,結(jié)果為真
! 真就是假 假就是真
不叫運(yùn)算符?。。。。。≈匾?/h4>
= 賦值預(yù)算符
== 等于(類型不一樣,值一樣,也會(huì)判斷成true)
=== 就對(duì)等于(類型一樣,值一樣,結(jié)果true)
這是js的一個(gè)缺陷,堅(jiān)持不要用= =比較
須知:NaM= =NAN,這個(gè)與所有的數(shù)值都不相等,包括自己
只能通過(guò)isNAN(NAN)來(lái)判斷這個(gè)數(shù)是否是NaN
浮點(diǎn)數(shù)問(wèn)題
console.log((1/3)===(1-2/3))
盡量避免使用浮點(diǎn)數(shù)進(jìn)行運(yùn)算,存在精度問(wèn)題!
Math.abs(1/3-(1-2/3))<0.00000001
null 和undefine
- null 空
- undefined 未定義
數(shù)組
**java的數(shù)組必須是相同類型的對(duì)象~,js中不需要這樣 **
//保證代碼的可讀性,盡量使用[]
var arr =[1,2,3,4,5,6,'hello',null,true];
new Array(1,2,16,3,8,2,'hello');
取數(shù)組下標(biāo):如果越界了,就會(huì)
undefined而不是報(bào)錯(cuò)
對(duì)象
對(duì)象是大括號(hào) 數(shù)組是中括號(hào),每一個(gè)屬性之間使用逗號(hào)隔開(kāi),最后一個(gè)屬性不需要添加
var person={
name:“qinjiang”,
age:3,
tags:['js','java']
}

數(shù)據(jù)類型
字符串
- 正常我們使用單引號(hào)或者雙引號(hào)包裹
- *注意使用轉(zhuǎn)義字符 *
- ' 單引號(hào)
- \n 換行
- \t tab
- \u4e2d Unicode字符
- \x41 Ascll字符
- 多行字符串編寫
//tab 上面esc鍵下面
var msg=`
Hello
world
`
- 模版字符串
let name="qinjing"
let age=3;
let mag=`nihaoya,${name}`
- 字符串長(zhǎng)度
str.length - 字符串的可變性和不可變性
Let student="student"
Console.log(student[0]) s
Student[0]=1 1
Console.log(student) student
- 大小寫轉(zhuǎn)換
student.toUpperCase()
student.toLowerCase()
- student.indexOf('t') //什么下表
- subing
[)
student.subing(1) //從第一個(gè)字符串截取到最后一個(gè)
student.subing(1,3)//包頭不包尾
數(shù)組
Array可以包含任意的數(shù)據(jù)類型
var arr=[1,2,3,4,5,6]
- 長(zhǎng)度
arr.length
注意: 加入給arr.length賦值,數(shù)組大小就會(huì)發(fā)生變化,如果賦值過(guò)小,元素就會(huì)丟失

- indexof,通過(guò)元素獲得下標(biāo)索引、
arr.indexof(2) //1
字符串的1和數(shù)字1不一樣

- slice() 截取Array的一部分,返回一個(gè)新數(shù)組
類似于string的substring

- pop(),push()
添加刪除從尾部

- unshift(),shift()
添加刪除從頭部

- 排序 sort()
- 元素反轉(zhuǎn)reverse()

- 拼接concat()
并不會(huì)修改數(shù)組,只是會(huì)返回一個(gè)新數(shù)組

- 連接符 join
打印數(shù)組,使用特地的字符串連接

- 多維數(shù)組
- fill

對(duì)象
若干個(gè)鍵值對(duì)
var 對(duì)象名={
屬性名:屬性值,
屬性名:屬性值,
屬性名:屬性值
}
var person={
name:"kuangsheng",
age:3,
email:"1985298021@qq.com",
score:0
}
js中的對(duì)象,{}表示一個(gè)對(duì)象,鍵值對(duì)描述屬性XXXXXX:XXXXXX多個(gè)屬性之間使用逗號(hào)隔開(kāi),最后一個(gè)不加逗號(hào)?。。?!
- 對(duì)象賦值
person.name="qinjiang"
"qinjiang"
person.name
"qinjiang"
- 使用一個(gè)不存在的對(duì)象屬性,不會(huì)報(bào)錯(cuò)! undefined
person.haha
undefined
- 動(dòng)態(tài)的刪除屬性
delete person.name
true
person
- 動(dòng)態(tài)的添加
person.haha="haha"
"haha"
person
- 判斷屬性值是否在這個(gè)對(duì)象中! XXX in XXX!
'age' in person
true
//繼承 tostring是父類有的
'toString' in person
true
- 判斷屬性值是否在這個(gè)對(duì)象自身有的hasOwnProperty()
person.hasOwnproperty('toString')
false
person.hasOwnProperty(;age)
true
流程控制
判斷
var age =3
if(age>3){
slert('hah');
}else if(age<5){
alert('kuwa');
}else{
alert('kukuku~~~~');
}
循環(huán)避免死循環(huán)
while(age<100){
age=age+1;
console.log(age);
}
for(let i=0;i<100;i++ ){
console.log(i);
}
do{
age=age+1;
console.log(age);
}while
//數(shù)組循環(huán)=>函數(shù)循環(huán) foreach
var person={ 1,1,2,3,6,58,52,41}
person.forEach(function (value)){
console.log(value)
}
//數(shù)組循環(huán)
for(var num in person){
console.log(person[num])
}
map set
es6 新特性
map
//統(tǒng)計(jì)學(xué)生的成績(jī)和學(xué)生的名字
//var names=["tom","jack","haha"]
var map=new Map(['tom',100],['jack',90],['haha',90])
var name=map.get('tom');//取值
map.set('admin',123456)//添加
console.log(name);
map.delete("tom")//刪除
set
var set=new Set([3,1,1,1,1])
console.log(set)//去重 3,1
set.add(2) //添加 3,1,2
set.delete(1) //刪除
console.log(set.has(3))//是否包含某個(gè)元素
iterator
es6 新特性
遍歷迭代
//通過(guò) for of 實(shí)現(xiàn) 迭代循環(huán) 通過(guò)for in下表
//遍歷數(shù)組
var arr=[3,4,5]
for(var x of arr){//不僅可以打印數(shù)組還可以打印集合
console.log(x)
}
//遍歷map集合
var map=new Map(['tom',100],['jack',90],['haha',90])
for(var x of map){
console.log(x)
}
//遍歷set集合
var set=new Set([3,1,1,1,1])
for(var x of set){
console.log(x)
}

浙公網(wǎng)安備 33010602011771號(hào)