文章目錄
- 概述
- 引入方式
- 瀏覽器除錯
- 資料型別
- JSON
- 方法
- 原型
概述
JavaScript(簡稱“JS”) 是一種具有函式優先的輕量級,解釋型或即時編譯型的編程語言,雖然它是作為開發Web頁面的腳本語言而出名,但是它也被用到了很多非瀏覽器環境中,JavaScript 基于原型編程、多范式的動態腳本語言,并且支持面向物件、命令式、宣告式、函式式編程范式,(前端中的互動部分)
JavaScript在1995年由Netscape公司的Brendan Eich,在網景導航者瀏覽器上首次設計實作而成,因為Netscape與Sun合作,Netscape管理層希望它外觀看起來像Java,因此取名為JavaScript,但實際上它的語法風格與Self及Scheme較為接近,(就是為蹭java的熱度,其實沒多大關系)
JavaScript的標準是ECMAScript ,截至 2012 年,所有瀏覽器都完整的支持ECMAScript 5.1,舊版本的瀏覽器至少支持ECMAScript 3 標準,2015年6月17日,ECMA國際組織發布了ECMAScript的第六版,該版本正式名稱為 ECMAScript 2015,但通常被稱為ECMAScript 6 或者ES2015, (最新的為ES6,但很多瀏覽器仍然只支持ES5)
引入方式
內部引入
直接在html中寫JS代碼
<script >
js代碼
</script>
外部引入
新建一個js檔案夾,檔案夾下再建.js檔案
<script src="js/js.js"></script>
瀏覽器除錯
在瀏覽器中右鍵點擊檢查,在element中可以除錯html和css,在console(控制臺)可以除錯js代碼,
在sources中可以進行js的斷點除錯,
資料型別
NUMBER
js不區分小數和整數,統稱為number
123
123.334
1.23e3
-99
NAN
not a number
NAN與任何值都不相等,包括自身
NAN===NAN? false
Infinity
表示無限大
字串
"abc"
'abc'
多行字串的撰寫
var str=
`qwerr
eqweqwe
rwqrqwwr
你好
`
在字串中直接放入變數
var a="hello";
var msg=`你好啊,${a}`;
布林值
true
false
比較運算子
== 等于(型別不一樣,值一樣,也會回傳true)
=== 絕對等于(型別一樣,值也一樣,才回傳true)
這是JS的一個缺陷,所以比較是否相等時堅持使用===
浮點數問題
1/3 === (1-2/3) ? false;
因為存在精度丟失的問題
盡量避免使用浮點數進行運算,因為存在精度問題
如果要比較上述兩者是否相同
Math.abs(1/3-(1-2/3)) < 0.00000001
若結果為true,則兩者相等
null和undefined
null 空
undefined 未定義
陣列
var arr=[1,2,3,'hello','a',null,true];
JS的語法比起java真的相當隨便,陣列中可以混有不同型別的值
且JS中可以取超過陣列的長度處的值,只是獲得的值為undefined
slice() 截取arr的一部分,回傳一個新的陣列,類似于java中的substring
push() 向陣列尾部插入一個值
pop() 陣列尾部彈出一個值
unshift()陣列頭部插入一個值
shift() 陣列頭部彈出一個值
concat()陣列拼接函式,concat并不會修改原陣列,只是會回傳一個新陣列
物件
var person={
name:"liHua",
age:18,
sex:"男"
}
屬性之間通過 ,隔開,與java的;不同,最后一個屬性后面不用加逗號
取物件的值
person.age;
person.name;
嚴格檢查模式
前提:IDEA需要設定ES6語法,這是ES6的新特性
‘use strict’ 嚴格檢查模式,可以預防JS的語法隨意性導致的一些問題
必須寫在JS代碼的第一行!
'use strict'
DATE
var time=new Date();
time.getFullYear();//年
time.getMonth();//月
time.getDate();//日
time.getDay();//星期幾
time.getHours();//時
time.getMinutes();//分
time.getSeconds();//秒
time.getTime();//時間戳 全世界統一,從1970 1.1 0:00:00 開始到現在的毫秒數
//每個人的本地時間不一定一樣,但時間戳一定一樣
//把時間戳轉化為DATE
var nowTime=new Date(time.getTime());
JSON

var user={
name:"liHua",
age:18,
sex:"男"
}
//物件轉化為JSON字串 {"name":"liHua","age":18,"sex":"男"}
var jsonUser=JSON.stringify(user);
//JSON字串轉化為JS物件
var obj=JSON.parse('{"name":"liHua","age":18,"sex":"男"}');
方法
其實就是函式
function check(){}
var check=function (){}
var user={
name:"liHua",
age:18,
sex:"男",
check:function (){ }
}
var user={
name:"liHua",
age:18,
sex:"男",
way:check();
}
原型
什么是面向物件
java和JS的面向物件有些區別
java中:
類:模板
物件:具體的實體
而在JS中,需要轉化一下思維
原型:子類 .proto = 父類
其實就是繼承,只不過在JS中稱為原型(ES6之前)
var user={
name:"liHua",
age:18,
sex:"男",
}
aaa.__proto__=user;
ES6之后,js的物件的創建和繼承變得越來越像java
class student{
constructor(name) {
this,name=name;
}
check(){
alert("HELLO");
}
}
class highStudengt extends student{
constructor(name,grade) {
super(name);
this.grade=grade;
}
showGrade() {
alert(this.grade);
}
}
原型鏈

所有類的原型最后都會回到object,從而形成一個原型鏈
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/291320.html
標籤:其他
