JS 筆記

  • 您可以在 HTML 文檔中放入不限數(shù)量的腳本。
    腳本可位于 HTML 的 <body> 或 <head> 部分中,或者同時(shí)存在于兩個(gè)部分中。
    通常的做法是把函數(shù)放入 <head> 部分中,或者放在頁面底部。這樣就可以把它們安置到同一處位置,不會(huì)干擾頁面的內(nèi)容。

操作 HTML 元素

如需從 JavaScript 訪問某個(gè) HTML 元素,您可以使用 document.getElementById(id) 方法。

請(qǐng)使用 "id" 屬性來標(biāo)識(shí) HTML 元素:

<!DOCTYPE html>
<html>
<body>

<h1>My First Web Page</h1>

<p id="demo">My First Paragraph</p>

<script>
document.getElementById("demo").innerHTML="My First JavaScript";
</script>

</body>
</html>
  • 請(qǐng)使用 document.write() 僅僅向文檔輸出寫內(nèi)容。
    如果在文檔已完成加載后執(zhí)行 document.write,整個(gè) HTML 頁面將被覆蓋:

  • JavaScript 會(huì)忽略多余的空格。您可以向腳本添加空格,來提高其可讀性。下面的兩行代碼是等效的:

  • 您可以在文本字符串中使用反斜杠對(duì)代碼行進(jìn)行換行。

  • JavaScript 是腳本語言。瀏覽器會(huì)在讀取代碼時(shí),逐行地執(zhí)行腳本代碼。而對(duì)于傳統(tǒng)編程來說,會(huì)在執(zhí)行前對(duì)所有代碼進(jìn)行編譯。

  • 單行注釋以 // 開頭。

  • 多行注釋以 /* 開始,以 */ 結(jié)尾。

  • 變量

var name="Gates", age=56, job="CEO";  
var name="Gates",
age=56,
job="CEO";
var carname; //值將是 undefined
//如果重新聲明 JavaScript 變量,該變量的值不會(huì)丟失:
y=5;
x=y+2; //可以通過 JavaScript 變量來做算數(shù),使用的是 = 和 + 這類運(yùn)算符
  • 數(shù)據(jù)類型
    字符串、數(shù)字、布爾、數(shù)組、對(duì)象、Null、Undefined
var x                // x 為 undefined
var x = 6;           // x 為數(shù)字
var x = "Bill";      // x 為字符串
//字符串
var answer="Nice to meet you!";
var answer="He is called 'Bill'";
var answer='He is called "Bill"';
//字符串可以是引號(hào)中的任意文本。您可以使用單引號(hào)或雙引號(hào)
//您可以在字符串中使用引號(hào),只要不匹配包圍字符串的引號(hào)即可
//數(shù)字
var x1=34.00;      //使用小數(shù)點(diǎn)來寫
var x2=34;         //不使用小數(shù)點(diǎn)來寫
var y=123e5;      // 12300000
var z=123e-5;     // 0.00123
//布爾
var x=true
var y=false
//數(shù)組
var cars=new Array();
cars[0]="Audi";
cars[1]="BMW";
cars[2]="Volvo";
var cars=new Array("Audi","BMW","Volvo");
var cars=["Audi","BMW","Volvo"];
//對(duì)象
//對(duì)象由花括號(hào)分隔。在括號(hào)內(nèi)部,對(duì)象的屬性以名稱和值對(duì)的形式
// (name : value) 來定義。屬性由逗號(hào)分隔
var person={firstname:"Bill", lastname:"Gates", id:5566};
var person={
firstname : "Bill",
lastname  : "Gates",
id        :  5566
};
//對(duì)象屬性有兩種尋址方
name=person.lastname;
name=person["lastname"];
//Undefined 和 Null
//Undefined 這個(gè)值表示變量不含有值。
//可以通過將變量的值設(shè)置為 null 來清空變量。
cars=null;
person=null;
//聲明變量類型
//當(dāng)您聲明新變量時(shí),可以使用關(guān)鍵詞 "new" 來聲明其類型:
var carname=new String;
var x=      new Number;
var y=      new Boolean;
var cars=   new Array;
var person= new Object;
  • 創(chuàng)建 JavaScript 對(duì)象
person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

JavaScript 函數(shù)

函數(shù)是由事件驅(qū)動(dòng)的或者當(dāng)它被調(diào)用時(shí)執(zhí)行的可重復(fù)使用的代碼塊。

<!DOCTYPE html>
<html>
<head>
<script>
function myFunction()
{
alert("Hello World!");
}
</script>
</head>

<body>
<button onclick="myFunction()">點(diǎn)擊這里</button>
</body>
</html>
//帶參數(shù),返回值
function myFunction(a,b)
{
return a*b;
}

document.getElementById("demo").innerHTML=myFunction(4,3);
//如果您把值賦給尚未聲明的變量,該變量將被自動(dòng)作為全局變量聲明
carname="Volvo";
//將聲明一個(gè)全局變量 carname,即使它在函數(shù)內(nèi)執(zhí)行。
  • JavaScript 變量的生存期

JavaScript 變量的生命期從它們被聲明的時(shí)間開始。
局部變量會(huì)在函數(shù)運(yùn)行以后被刪除。
全局變量會(huì)在頁面關(guān)閉后被刪除。

  • 算術(shù)運(yùn)算符

|運(yùn)算符 |描述 |例子 |結(jié)果
|-|-|-|
|+ |加 |x=y+2 |x=7
|- |減 |x=y-2 |x=3
|* |乘 |x=y*2 |x=10
|/ |除 |x=y/2 |x=2.5
|% |求余數(shù) (保留整數(shù)) |x=y%2 |x=1
|++ |累加 |x=++y |x=6
|-- |遞減 |x=--y |x=4

  • 賦值運(yùn)算符

|運(yùn)算符 |例子 |等價(jià)于 |結(jié)果
|-|-|-|
|= |x=y |x=5
|+= |x+=y |x=x+y |x=15
|-= |x-=y |x=x-y |x=5
|= |x=y |x=x*y |x=50
|/= |x/=y |x=x/y |x=2
|%= |x%=y |x=x%y |x=0

  • 用于字符串的 + 運(yùn)算符
txt1="What a very";
txt2="nice day";
txt3=txt1+txt2;
  • 比較運(yùn)算符

|運(yùn)算符 |描述 |例子
|-|-|
|== |等于 |x==8 為 false
|=== |全等(值和類型) |x===5 為 true;x==="5" 為 false
|!= |不等于 |x!=8 為 true
|> |大于 |x>8 為 false
|< |小于 |x<8 為 true
|>= |大于或等于 |x>=8 為 false
|<= |小于或等于 |x<=8 為 true

  • 邏輯運(yùn)算符

|運(yùn)算符 |描述 |例子
|-|-|
|&& |and& |(x < 10 && y > 1) 為 true
| (雙豎杠) |or |(x==5 (雙豎杠) y==5) 為 false
|! |not |!(x==y) 為 true

  • 條件運(yùn)算符
greeting=(visitor=="PRES")?"Dear President ":"Dear ";
  • If...Else 語句
  • Switch 語句
  • for語句

for - 循環(huán)代碼塊一定的次數(shù)
for/in - 循環(huán)遍歷對(duì)象的屬性
while - 當(dāng)指定的條件為 true 時(shí)循環(huán)指定的代碼塊
do/while - 同樣當(dāng)指定的條件為 true 時(shí)循環(huán)指定的代碼塊

for (var i=0,len=cars.length; i<len; i++)
{
document.write(cars[i] + "<br>");
}

var person={fname:"John",lname:"Doe",age:25};
for (x in person)
  {
  txt=txt + person[x];
  }
  • While 循環(huán)
do
  {
  x=x + "The number is " + i + "<br>";
  i++;
  }
while (i<5);
  • break 和 continue
//除了一般用法,可以加標(biāo)簽
break labelname;
continue labelname;
//通過標(biāo)簽引用,break 語句可用于跳出任何 JavaScript 代碼塊:
cars=["BMW","Volvo","Saab","Ford"];
list:
{
document.write(cars[0] + "<br>");
document.write(cars[1] + "<br>");
document.write(cars[2] + "<br>");
break list;
document.write(cars[3] + "<br>");
document.write(cars[4] + "<br>");
document.write(cars[5] + "<br>");
}
  • Throw、Try 和 Catch
    try 語句測(cè)試代碼塊的錯(cuò)誤。
    catch 語句處理錯(cuò)誤。
    throw 語句創(chuàng)建自定義錯(cuò)誤。

JavaScript 拋出錯(cuò)誤
當(dāng)錯(cuò)誤發(fā)生時(shí),當(dāng)事情出問題時(shí),JavaScript 引擎通常會(huì)停止,并生成一個(gè)錯(cuò)誤消息。
描述這種情況的技術(shù)術(shù)語是:JavaScript 將拋出一個(gè)錯(cuò)誤。

<!DOCTYPE html>
<html>
<head>
<script>
var txt="";
function message()
{
try
  {
  adddlert("Welcome guest!");
  }
catch(err)
  {
  txt="There was an error on this page.\n\n";
  txt+="Error description: " + err.message + "\n\n";
  txt+="Click OK to continue.\n\n";
  alert(txt);
  }
}
</script>
</head>

<body>
<input type="button" value="View message" onclick="message()">
</body>

</html>
<script>
function myFunction()
{
try
  {
  var x=document.getElementById("demo").value;
  if(x=="")    throw "empty";
  if(isNaN(x)) throw "not a number";
  if(x>10)     throw "too high";
  if(x<5)      throw "too low";
  }
catch(err)
  {
  var y=document.getElementById("mess");
  y.innerHTML="Error: " + err + ".";
  }
}
</script>

<h1>My First JavaScript</h1>
<p>Please input a number between 5 and 10:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="mess"></p>

表單驗(yàn)證

JavaScript 可用來在數(shù)據(jù)被送往服務(wù)器前對(duì) HTML 表單中的這些輸入數(shù)據(jù)進(jìn)行驗(yàn)證。

被 JavaScript 驗(yàn)證的這些典型的表單數(shù)據(jù)有:

用戶是否已填寫表單中的必填項(xiàng)目?
用戶輸入的郵件地址是否合法?
用戶是否已輸入合法的日期?
用戶是否在數(shù)據(jù)域 (numeric field) 中輸入了文本?

必填(或必選)項(xiàng)目
下面的函數(shù)用來檢查用戶是否已填寫表單中的必填(或必選)項(xiàng)目。假如必填或必選項(xiàng)為空,那么警告框會(huì)彈出,并且函數(shù)的返回值為 false,否則函數(shù)的返回值則為 true(意味著數(shù)據(jù)沒有問題):

function validate_required(field,alerttxt)
{
with (field)
{
if (value==null||value=="")
  {alert(alerttxt);return false}
else {return true}
}
}

下面是連同 HTML 表單的代碼:

<html>
<head>
<script type="text/javascript">

function validate_required(field,alerttxt)
{
with (field)
  {
  if (value==null||value=="")
    {alert(alerttxt);return false}
  else {return true}
  }
}

function validate_form(thisform)
{
with (thisform)
  {
  if (validate_required(email,"Email must be filled out!")==false)
    {email.focus();return false}
  }
}
</script>
</head>

<body>
<form action="submitpage.htm" onsubmit="return validate_form(this)" method="post">
Email: <input type="text" name="email" size="30">
<input type="submit" value="Submit"> 
</form>
</body>

</html>

E-mail 驗(yàn)證
下面的函數(shù)檢查輸入的數(shù)據(jù)是否符合電子郵件地址的基本語法。

意思就是說,輸入的數(shù)據(jù)必須包含 @ 符號(hào)和點(diǎn)號(hào)(.)。同時(shí),@ 不可以是郵件地址的首字符,并且 @ 之后需有至少一個(gè)點(diǎn)號(hào):

function validate_email(field,alerttxt)
{
with (field)
{
apos=value.indexOf("@")
dotpos=value.lastIndexOf(".")
if (apos<1||dotpos-apos<2) 
  {alert(alerttxt);return false}
else {return true}
}
}

下面是連同 HTML 表單的完整代碼:

<html>
<head>
<script type="text/javascript">
function validate_email(field,alerttxt)
{
with (field)
{
apos=value.indexOf("@")
dotpos=value.lastIndexOf(".")
if (apos<1||dotpos-apos<2) 
  {alert(alerttxt);return false}
else {return true}
}
}

function validate_form(thisform)
{
with (thisform)
{
if (validate_email(email,"Not a valid e-mail address!")==false)
  {email.focus();return false}
}
}
</script>
</head>

<body>
<form action="submitpage.htm"onsubmit="return validate_form(this);" method="post">
Email: <input type="text" name="email" size="30">
<input type="submit" value="Submit"> 
</form>
</body>

</html>

注:以上是基礎(chǔ)點(diǎn),以下是核心知識(shí)點(diǎn)


一、JavaScript HTML DOM

通過 HTML DOM,可訪問 JavaScript HTML 文檔的所有元素。
當(dāng)網(wǎng)頁被加載時(shí),瀏覽器會(huì)創(chuàng)建頁面的文檔對(duì)象模型(Document Object Model)。
HTML DOM 模型被構(gòu)造為對(duì)象的樹。


圖片.png

通過可編程的對(duì)象模型,JavaScript 獲得了足夠的能力來創(chuàng)建動(dòng)態(tài)的 HTML。

JavaScript 能夠改變頁面中的所有 HTML 元素
JavaScript 能夠改變頁面中的所有 HTML 屬性
JavaScript 能夠改變頁面中的所有 CSS 樣式
JavaScript 能夠?qū)撁嬷械乃惺录龀龇磻?yīng)
  • 查找 HTML 元素
    可以通過id、標(biāo)簽名、類名查找
var x=document.getElementById("intro");

//查找 id="main" 的元素,然后查找 "main" 中的所有 <p> 元素
var x=document.getElementById("main");
var y=x.getElementsByTagName("p");
//通過類名查找 HTML 元素在 IE 5,6,7,8 中無效。

1.1 改變 HTML

  • 改變輸出流
<!DOCTYPE html>
<html>
<body>

<script>
document.write(Date());
</script>

</body>
</html>

結(jié)果:今天的日期是: Thu May 25 2017 16:42:15 GMT+0800 (CST)

  • 改變內(nèi)容
    語法:
document.getElementById(id).innerHTML=new HTML
<html>
<body>

<p id="p1">Hello World!</p>

<script>
document.getElementById("p1").innerHTML="New text!";
</script>

</body>
</html>
  • 改變?cè)貙傩?br> 語法:
document.getElementById(id).attribute=new value
<!DOCTYPE html>
<html>
<body>

![](smiley.gif)

<script>
document.getElementById("image").src="landscape.jpg";
</script>

</body>
</html>

1.2 改變 CSS

  • 改變 HTML 樣式
document.getElementById(id).style.property=new style
<p id="p2">Hello World!</p>

<script>
document.getElementById("p2").style.color="blue";
</script>

1.3 DOM 事件

  • 對(duì)事件做出反應(yīng)
    點(diǎn)擊元素
    onclick=JavaScript
    HTML 事件的例子:

    當(dāng)用戶點(diǎn)擊鼠標(biāo)時(shí)
    當(dāng)網(wǎng)頁已加載時(shí)
    當(dāng)圖像已加載時(shí)
    當(dāng)鼠標(biāo)移動(dòng)到元素上時(shí)
    當(dāng)輸入字段被改變時(shí)
    當(dāng)提交 HTML 表單時(shí)
    當(dāng)用戶觸發(fā)按鍵時(shí)

//當(dāng)用戶在 <h1> 元素上點(diǎn)擊時(shí),會(huì)改變其內(nèi)容
<h1 onclick="this.innerHTML='謝謝!'">請(qǐng)點(diǎn)擊該文本</h1>

//從事件處理器調(diào)用一個(gè)函數(shù)
<!DOCTYPE html>
<html>
<head>
<script>
function changetext(id)
{
id.innerHTML="謝謝!";
}
</script>
</head>
<body>
<h1 onclick="changetext(this)">請(qǐng)點(diǎn)擊該文本</h1>
</body>
</html>

  • HTML 事件屬性
<button onclick="displayDate()">點(diǎn)擊這里</button>
  • 使用 HTML DOM 來分配事件
<script>
document.getElementById("myBtn").onclick=function(){displayDate()};
</script>

  • onload 和 onunload 事件

onload 和 onunload 事件會(huì)在用戶進(jìn)入或離開頁面時(shí)被觸發(fā)。
onload 事件可用于檢測(cè)訪問者的瀏覽器類型和瀏覽器版本,并基于這些信息來加載網(wǎng)頁的正確版本。
onload 和 onunload 事件可用于處理 cookie。

  • onchange 事件

onchange 事件常結(jié)合對(duì)輸入字段的驗(yàn)證來使用。

  • onmouseover 和 onmouseout 事件

onmouseover 和 onmouseout 事件可用于在用戶的鼠標(biāo)移至 HTML 元素上方或移出元素時(shí)觸發(fā)函數(shù)。

  • onmousedown、onmouseup 以及 onclick 事件

onmousedown, onmouseup 以及 onclick 構(gòu)成了鼠標(biāo)點(diǎn)擊事件的所有部分。首先當(dāng)點(diǎn)擊鼠標(biāo)按鈕時(shí),會(huì)觸發(fā) onmousedown 事件,當(dāng)釋放鼠標(biāo)按鈕時(shí),會(huì)觸發(fā) onmouseup 事件,最后,當(dāng)完成鼠標(biāo)點(diǎn)擊時(shí),會(huì)觸發(fā) onclick 事件。

// onclick 事件
<body onload="checkCookies()">

//onchange 事件
<input type="text" id="fname" onchange="upperCase()">

<!DOCTYPE html>
<html>
<body>

<div onmouseover="mOver(this)" onmouseout="mOut(this)" style="background-color:green;width:120px;height:20px;padding:40px;color:#ffffff;">把鼠標(biāo)移到上面</div>

<script>
function mOver(obj)
{
obj.innerHTML="謝謝"
}

function mOut(obj)
{
obj.innerHTML="把鼠標(biāo)移到上面"
}
</script>

</body>
</html>

1.4 DOM 元素(節(jié)點(diǎn))

  • 創(chuàng)建新的 HTML 元素
    如需向 HTML DOM 添加新元素,您必須首先創(chuàng)建該元素(元素節(jié)點(diǎn)),然后向一個(gè)已存在的元素追加該元素。
<div id="div1">
<p id="p1">這是一個(gè)段落</p>
<p id="p2">這是另一個(gè)段落</p>
</div>

<script>
var para=document.createElement("p");
var node=document.createTextNode("這是新段落。");
para.appendChild(node);

var element=document.getElementById("div1");
element.appendChild(para);
</script>

  • 刪除已有的 HTML 元素
    如需刪除 HTML 元素,您必須首先獲得該元素的父元素
<div id="div1">
<p id="p1">這是一個(gè)段落。</p>
<p id="p2">這是另一個(gè)段落。</p>
</div>

<script>
var parent=document.getElementById("div1");
var child=document.getElementById("p1");
parent.removeChild(child);
</script>

二、JavaScript 對(duì)象

JavaScript 中的所有事物都是對(duì)象:字符串、數(shù)值、數(shù)組、函數(shù)...
此外,JavaScript 允許自定義對(duì)象。

2.1 創(chuàng)建&使用JavaScript 對(duì)象

創(chuàng)建新對(duì)象有兩種不同的方法:
1. 定義并創(chuàng)建對(duì)象的實(shí)例
2. 使用函數(shù)來定義對(duì)象,然后創(chuàng)建新的對(duì)象實(shí)例

  • 創(chuàng)建直接的實(shí)例
person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

//或者
person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};
  • 使用對(duì)象構(gòu)造器
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}

//帶有方法
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;

this.changeName=changeName;
function changeName(name)
{
this.lastname=name;
}
}


//依靠上面的對(duì)象構(gòu)造器,就可以創(chuàng)建實(shí)例
var myFather=new person("Bill","Gates",56,"blue");
var myMother=new person("Steve","Jobs",48,"green");

//使用方法
myMother.changeName("Ballmer");

注:

JavaScript 是面向?qū)ο蟮恼Z言,但 JavaScript 不使用類。
在 JavaScript 中,不會(huì)創(chuàng)建類,也不會(huì)通過類來創(chuàng)建對(duì)象(就像在其他面向?qū)ο蟮恼Z言中那樣)。
JavaScript 基于 prototype,而不是基于類的。

JavaScript for...in 語句循環(huán)遍歷對(duì)象的屬性。

var person={fname:"Bill",lname:"Gates",age:56};
for (x in person)
  {
  txt=txt + person[x];
  }

2.2 Number 對(duì)象

  • avaScript 只有一種數(shù)字類型。
    可以使用也可以不使用小數(shù)點(diǎn)來書寫數(shù)字。
  • 所有 JavaScript 數(shù)字均為 64 位
  • 精度
    整數(shù)(不使用小數(shù)點(diǎn)或指數(shù)計(jì)數(shù)法)最多為 15 位。
    小數(shù)的最大位數(shù)是 17,但是浮點(diǎn)運(yùn)算并不總是 100% 準(zhǔn)確
  • 八進(jìn)制和十六進(jìn)制
var y=0377;
var z=0xFF;
  • 創(chuàng)建 Number 對(duì)象的語法:
var myNum=new Number(value);
var myNum=Number(value);
  • Number 對(duì)象屬性
屬性 描述
constructor 返回對(duì)創(chuàng)建此對(duì)象的 Number 函數(shù)的引用。
MAX_VALUE 可表示的最大的數(shù)。
MIN_VALUE 可表示的最小的數(shù)。
NaN 非數(shù)字值。
NEGATIVE_INFINITY 負(fù)無窮大,溢出時(shí)返回該值。
POSITIVE_INFINITY 正無窮大,溢出時(shí)返回該值。
prototype 使您有能力向?qū)ο筇砑訉傩院头椒ā?/td>
  • Number 對(duì)象方法
方法 描述
toString 把數(shù)字轉(zhuǎn)換為字符串,使用指定的基數(shù)。
toLocaleString 把數(shù)字轉(zhuǎn)換為字符串,使用本地?cái)?shù)字格式順序。
toFixed 把數(shù)字轉(zhuǎn)換為字符串,結(jié)果的小數(shù)點(diǎn)后有指定位數(shù)的數(shù)字。
toExponential 把對(duì)象的值轉(zhuǎn)換為指數(shù)計(jì)數(shù)法。
toPrecision 把數(shù)字格式化為指定的長度。
valueOf 返回一個(gè) Number 對(duì)象的基本數(shù)字值。

2.3 字符串

  • 創(chuàng)建 String 對(duì)象的語法:
new String(s);
String(s);
  • String 對(duì)象屬性
屬性 描述
constructor 對(duì)創(chuàng)建該對(duì)象的函數(shù)的引用
length 字符串的長度
prototype 允許您向?qū)ο筇砑訉傩院头椒?/td>
  • String 對(duì)象方法
方法 描述
anchor() 創(chuàng)建 HTML 錨。
big() 用大號(hào)字體顯示字符串。
blink() 顯示閃動(dòng)字符串。
bold() 使用粗體顯示字符串。
charAt() 返回在指定位置的字符。
charCodeAt() 返回在指定的位置的字符的 Unicode 編碼。
concat() 連接字符串。
fixed() 以打字機(jī)文本顯示字符串。
fontcolor() 使用指定的顏色來顯示字符串。
fontsize() 使用指定的尺寸來顯示字符串。
fromCharCode() 從字符編碼創(chuàng)建一個(gè)字符串。
indexOf() 檢索字符串。
italics() 使用斜體顯示字符串。
lastIndexOf() 從后向前搜索字符串。
link() 將字符串顯示為鏈接。
localeCompare() 用本地特定的順序來比較兩個(gè)字符串。
match() 找到一個(gè)或多個(gè)正則表達(dá)式的匹配。
replace() 替換與正則表達(dá)式匹配的子串。
search() 檢索與正則表達(dá)式相匹配的值。
slice() 提取字符串的片斷,并在新的字符串中返回被提取的部分。
small() 使用小字號(hào)來顯示字符串。
split() 把字符串分割為字符串?dāng)?shù)組。
strike() 使用刪除線來顯示字符串。
sub() 把字符串顯示為下標(biāo)。
substr() 從起始索引號(hào)提取字符串中指定數(shù)目的字符。
substring() 提取字符串中兩個(gè)指定的索引號(hào)之間的字符。
sup() 把字符串顯示為上標(biāo)。
toLocaleLowerCase() 把字符串轉(zhuǎn)換為小寫。
toLocaleUpperCase() 把字符串轉(zhuǎn)換為大寫。
toLowerCase() 把字符串轉(zhuǎn)換為小寫。
toUpperCase() 把字符串轉(zhuǎn)換為大寫。
toSource() 代表對(duì)象的源代碼。
toString() 返回字符串。
valueOf() 返回某個(gè)字符串對(duì)象的原始值。
  • String 對(duì)象描述

字符串是 JavaScript 的一種基本的數(shù)據(jù)類型。

String 對(duì)象的 length 屬性聲明了該字符串中的字符數(shù)。
String 類定義了大量操作字符串的方法,例如從字符串中提取字符或子串,或者檢索字符或子串。

需要注意的是,JavaScript 的字符串是不可變的(immutable),String 類定義的方法都不能改變字符串的內(nèi)容。像 String.toUpperCase() 這樣的方法,返回的是全新的字符串,而不是修改原始字符串。

在較早的 Netscape 代碼基的 JavaScript 實(shí)現(xiàn)中(例如 Firefox 實(shí)現(xiàn)中),字符串的行為就像只讀的字符數(shù)組。例如,從字符串 s 中提取第三個(gè)字符,可以用 s[2] 代替更加標(biāo)準(zhǔn)的 s.charAt(2)。此外,對(duì)字符串應(yīng)用 for/in 循環(huán)時(shí),它將枚舉字符串中每個(gè)字符的數(shù)組下標(biāo)(但要注意,ECMAScript 標(biāo)準(zhǔn)規(guī)定,不能枚舉 length 屬性)。因?yàn)樽址臄?shù)組行為不標(biāo)準(zhǔn),所以應(yīng)該避免使用它。

2.4 Date(日期)對(duì)象

  • 創(chuàng)建 Date 對(duì)象的語法:
var myDate=new Date()
  • Date 對(duì)象屬性
屬性 描述
constructor 返回對(duì)創(chuàng)建此對(duì)象的 Date 函數(shù)的引用。
prototype 使您有能力向?qū)ο筇砑訉傩院头椒ā?/td>
  • Date 對(duì)象方法
方法 描述
Date() 返回當(dāng)日的日期和時(shí)間。
getDate() 從 Date 對(duì)象返回一個(gè)月中的某一天 (1 ~ 31)。
getDay() 從 Date 對(duì)象返回一周中的某一天 (0 ~ 6)。
getMonth() 從 Date 對(duì)象返回月份 (0 ~ 11)。
getFullYear() 從 Date 對(duì)象以四位數(shù)字返回年份。
getYear() 請(qǐng)使用 getFullYear() 方法代替。
getHours() 返回 Date 對(duì)象的小時(shí) (0 ~ 23)。
getMinutes() 返回 Date 對(duì)象的分鐘 (0 ~ 59)。
getSeconds() 返回 Date 對(duì)象的秒數(shù) (0 ~ 59)。
getMilliseconds() 返回 Date 對(duì)象的毫秒(0 ~ 999)。
getTime() 返回 1970 年 1 月 1 日至今的毫秒數(shù)。
getTimezoneOffset() 返回本地時(shí)間與格林威治標(biāo)準(zhǔn)時(shí)間 (GMT) 的分鐘差。
getUTCDate() 根據(jù)世界時(shí)從 Date 對(duì)象返回月中的一天 (1 ~ 31)。
getUTCDay() 根據(jù)世界時(shí)從 Date 對(duì)象返回周中的一天 (0 ~ 6)。
getUTCMonth() 根據(jù)世界時(shí)從 Date 對(duì)象返回月份 (0 ~ 11)。
getUTCFullYear() 根據(jù)世界時(shí)從 Date 對(duì)象返回四位數(shù)的年份。
getUTCHours() 根據(jù)世界時(shí)返回 Date 對(duì)象的小時(shí) (0 ~ 23)。
getUTCMinutes() 根據(jù)世界時(shí)返回 Date 對(duì)象的分鐘 (0 ~ 59)。
getUTCSeconds() 根據(jù)世界時(shí)返回 Date 對(duì)象的秒鐘 (0 ~ 59)。
getUTCMilliseconds() 根據(jù)世界時(shí)返回 Date 對(duì)象的毫秒(0 ~ 999)。
parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒數(shù)。
setDate() 設(shè)置 Date 對(duì)象中月的某一天 (1 ~ 31)。
setMonth() 設(shè)置 Date 對(duì)象中月份 (0 ~ 11)。
setFullYear() 設(shè)置 Date 對(duì)象中的年份(四位數(shù)字)。
setYear() 請(qǐng)使用 setFullYear() 方法代替。
setHours() 設(shè)置 Date 對(duì)象中的小時(shí) (0 ~ 23)。
setMinutes() 設(shè)置 Date 對(duì)象中的分鐘 (0 ~ 59)。
setSeconds() 設(shè)置 Date 對(duì)象中的秒鐘 (0 ~ 59)。
setMilliseconds() 設(shè)置 Date 對(duì)象中的毫秒 (0 ~ 999)。
setTime() 以毫秒設(shè)置 Date 對(duì)象。
setUTCDate() 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中月份的一天 (1 ~ 31)。
setUTCMonth() 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的月份 (0 ~ 11)。
setUTCFullYear() 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的年份(四位數(shù)字)。
setUTCHours() 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的小時(shí) (0 ~ 23)。
setUTCMinutes() 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的分鐘 (0 ~ 59)。
setUTCSeconds() 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的秒鐘 (0 ~ 59)。
setUTCMilliseconds() 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的毫秒 (0 ~ 999)。
toSource() 返回該對(duì)象的源代碼。
toString() 把 Date 對(duì)象轉(zhuǎn)換為字符串。
toTimeString() 把 Date 對(duì)象的時(shí)間部分轉(zhuǎn)換為字符串。
toDateString() 把 Date 對(duì)象的日期部分轉(zhuǎn)換為字符串。
toGMTString() 請(qǐng)使用 toUTCString() 方法代替。
toUTCString() 根據(jù)世界時(shí),把 Date 對(duì)象轉(zhuǎn)換為字符串。
toLocaleString() 根據(jù)本地時(shí)間格式,把 Date 對(duì)象轉(zhuǎn)換為字符串。
toLocaleTimeString() 根據(jù)本地時(shí)間格式,把 Date 對(duì)象的時(shí)間部分轉(zhuǎn)換為字符串。
toLocaleDateString() 根據(jù)本地時(shí)間格式,把 Date 對(duì)象的日期部分轉(zhuǎn)換為字符串。
UTC() 根據(jù)世界時(shí)返回 1970 年 1 月 1 日 到指定日期的毫秒數(shù)。
valueOf() 返回 Date 對(duì)象的原始值。

2.5 Array 對(duì)象

  • 創(chuàng)建 Array 對(duì)象的語法:
new Array();
new Array(size);
new Array(element0, element1, ..., elementn);
  • Array 對(duì)象屬性
屬性 描述
constructor 返回對(duì)創(chuàng)建此對(duì)象的數(shù)組函數(shù)的引用。
length 設(shè)置或返回?cái)?shù)組中元素的數(shù)目。
prototype 使您有能力向?qū)ο筇砑訉傩院头椒ā?/td>
  • Array 對(duì)象方法
方法 描述
concat() 連接兩個(gè)或更多的數(shù)組,并返回結(jié)果。
join() 把數(shù)組的所有元素放入一個(gè)字符串。元素通過指定的分隔符進(jìn)行分隔。
pop() 刪除并返回?cái)?shù)組的最后一個(gè)元素
push() 向數(shù)組的末尾添加一個(gè)或更多元素,并返回新的長度。
reverse() 顛倒數(shù)組中元素的順序。
shift() 刪除并返回?cái)?shù)組的第一個(gè)元素
slice() 從某個(gè)已有的數(shù)組返回選定的元素
sort() 對(duì)數(shù)組的元素進(jìn)行排序
splice() 刪除元素,并向數(shù)組添加新元素。
toSource() 返回該對(duì)象的源代碼。
toString() 把數(shù)組轉(zhuǎn)換為字符串,并返回結(jié)果。
toLocaleString() 把數(shù)組轉(zhuǎn)換為本地?cái)?shù)組,并返回結(jié)果。
unshift() 向數(shù)組的開頭添加一個(gè)或更多元素,并返回新的長度。
valueOf() 返回?cái)?shù)組對(duì)象的原始值

2.6 Math 對(duì)象

  • 使用 Math 的屬性和方法的語法:
var pi_value=Math.PI;
var sqrt_value=Math.sqrt(15);
//使用了 Math 對(duì)象的 floor() 方法和 random() 來返回一個(gè)介于 0 和 10 之間的隨機(jī)數(shù)
document.write(Math.floor(Math.random()*11)) 

**注: ** Math 對(duì)象并不像 Date 和 String 那樣是對(duì)象的類,因此沒有構(gòu)造函數(shù) Math(),像 Math.sin() 這樣的函數(shù)只是函數(shù),不是某個(gè)對(duì)象的方法。您無需創(chuàng)建它,通過把 Math 作為對(duì)象使用就可以調(diào)用其所有屬性和方法。

  • Math 對(duì)象屬性
屬性 描述
E 返回算術(shù)常量 e,即自然對(duì)數(shù)的底數(shù)(約等于2.718)。
LN2 返回 2 的自然對(duì)數(shù)(約等于0.693)。
LN10 返回 10 的自然對(duì)數(shù)(約等于2.302)。
LOG2E 返回以 2 為底的 e 的對(duì)數(shù)(約等于 1.414)。
LOG10E 返回以 10 為底的 e 的對(duì)數(shù)(約等于0.434)。
PI 返回圓周率(約等于3.14159)。
SQRT1_2 返回返回 2 的平方根的倒數(shù)(約等于 0.707)。
SQRT2 返回 2 的平方根(約等于 1.414)。
  • Math 對(duì)象方法
方法 描述
abs(x) 返回?cái)?shù)的絕對(duì)值。
acos(x) 返回?cái)?shù)的反余弦值。
asin(x) 返回?cái)?shù)的反正弦值。
atan(x) 以介于 -PI/2 與 PI/2 弧度之間的數(shù)值來返回 x 的反正切值。
atan2(y,x) 返回從 x 軸到點(diǎn) (x,y) 的角度(介于 -PI/2 與 PI/2 弧度之間)。
ceil(x) 對(duì)數(shù)進(jìn)行上舍入。
cos(x) 返回?cái)?shù)的余弦。
exp(x) 返回 e 的指數(shù)。
floor(x) 對(duì)數(shù)進(jìn)行下舍入。
log(x) 返回?cái)?shù)的自然對(duì)數(shù)(底為e)。
max(x,y) 返回 x 和 y 中的最高值。
min(x,y) 返回 x 和 y 中的最低值。
pow(x,y) 返回 x 的 y 次冪。
random() 返回 0 ~ 1 之間的隨機(jī)數(shù)。
round(x) 把數(shù)四舍五入為最接近的整數(shù)。
sin(x) 返回?cái)?shù)的正弦。
sqrt(x) 返回?cái)?shù)的平方根。
tan(x) 返回角的正切。
toSource() 返回該對(duì)象的源代碼。
valueOf() 返回 Math 對(duì)象的原始值。

2.7 Boolean 對(duì)象

  • 創(chuàng)建 Boolean 對(duì)象的語法:
new Boolean(value); //構(gòu)造函數(shù)
Boolean(value);     //轉(zhuǎn)換函數(shù)

注: 如果省略 value 參數(shù),或者設(shè)置為 0、-0、null、""、false、undefined 或 NaN,則該對(duì)象設(shè)置為 false。否則設(shè)置為 true(即使 value 參數(shù)是字符串 "false")。

  • Boolean 對(duì)象屬性
屬性 描述
constructor 返回對(duì)創(chuàng)建此對(duì)象的 Boolean 函數(shù)的引用
prototype 使您有能力向?qū)ο筇砑訉傩院头椒ā?/td>
  • Boolean 對(duì)象方法
方法 描述
toSource() 返回該對(duì)象的源代碼。
toString() 把邏輯值轉(zhuǎn)換為字符串,并返回結(jié)果。
valueOf() 返回 Boolean 對(duì)象的原始值。
  • Boolean 對(duì)象描述

在 JavaScript 中,布爾值是一種基本的數(shù)據(jù)類型。Boolean 對(duì)象是一個(gè)將布爾值打包的布爾對(duì)象。Boolean 對(duì)象主要用于提供將布爾值轉(zhuǎn)換成字符串的 toString() 方法。

當(dāng)調(diào)用 toString() 方法將布爾值轉(zhuǎn)換成字符串時(shí)(通常是由 JavaScript 隱式地調(diào)用),JavaScript 會(huì)內(nèi)在地將這個(gè)布爾值轉(zhuǎn)換成一個(gè)臨時(shí)的 Boolean 對(duì)象,然后調(diào)用這個(gè)對(duì)象的 toString() 方法。

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

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

  • js簡(jiǎn)介 Js是一種基于事件和對(duì)象驅(qū)動(dòng)的解釋性、松散性的語言。 一切皆對(duì)象 javascript 布蘭登艾奇 ...
    塔庫納瑪哈哈閱讀 1,348評(píng)論 0 2
  • 在JavaScript中,一切都是對(duì)象。 使用深度優(yōu)先遍歷,element是一個(gè)DOM元素,selectors是一...
    garble閱讀 679評(píng)論 0 1
  • 個(gè)人入門學(xué)習(xí)用筆記、不過多作為參考依據(jù)。如有錯(cuò)誤歡迎斧正 目錄 簡(jiǎn)書好像不支持錨點(diǎn)、復(fù)制搜索(反正也是寫給我自己看...
    kirito_song閱讀 2,651評(píng)論 1 37
  • 標(biāo)題 (讓字體變大,和word的標(biāo)題意思一樣)在Markdown當(dāng)中設(shè)置標(biāo)題,有兩種方式:第一種:通過在文字下方添...
    夏大王2019閱讀 821評(píng)論 0 0
  • 親愛的簡(jiǎn)書里的小伙伴們,我是一枚初次來到簡(jiǎn)書的小萌新。 雖然我是小萌新,但是我還是大有遠(yuǎn)大理想的哈哈,我也希望能...
    瀘川閱讀 229評(píng)論 0 0

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