2018-11-05

01javascript語法規(guī)范

<!DOCTYPE html>

<html>

? ? ? ? <head>

? ? ? ? ? ? ? <title>javascript語法規(guī)范</title>

? ? ? ? ? ? ?<meta http-equiv="content-type" content="text/html; charset=utf-8"/>

? ? ? ?</head>

? ? ? ?<body>

? ? ? ? ? ? ? <!-- 注意:雙引號里不能再有雙引號? 點(diǎn)擊才激發(fā) -->

? ? ? ? ? ? ?<button onclick="alert('今天天氣很好!');">今天天氣很好!</button>

? ? ? ? </body>

? ? ? ? <script type="text/javascript">? ? ? ????????? //內(nèi)部引入

? ? ? ? ? ? alert("今天天氣真好。");

? ? ? ? </script>

? ? ? ? <script src="../js/01.js"></script>? ? ? ? ? //外部引入

</html>

02初體驗(yàn)

<!DOCTYPE html>

<html>

? ? ? <head>

? ? ? ? ? <title>02初體驗(yàn)</title>

? ? ? ? ? <meta http-equiv="content-type" content="text/html; charset=utf-8"/>

? ? ? </head>

? ? ? <body>

? ? ? </body>

? ? ? <script src="../js/01.js"></script>? ? ? ? //外部引入寫法

</html>

03js的輸出方法

<!DOCTYPE html>

<html>

? ? ? <head>

? ? ? ? ? <title>03js的輸出方法</title>

? ? ? ? ? <meta http-equiv="content-type" content="text/html; charset=utf-8"/>

? ? ? </head>

? ? ? <body>

? ? ? ? ? <div id="div1"></div>

? ? ? ? ? <div id="div2"></div>

? ? ? </body>

? ? ? <script src="../js/02.js"></script>

</html>

/* 輸出方式一 alert("我是歐陽勤斌 彈框輸出");*/

alert("我是歐陽勤斌------alert('我是歐陽勤斌')");

/* 方式二? console.log("控制臺輸出法"); */

console.log("我是歐陽勤斌");

/*方式三 console.warn("警告輸出!控制臺輸出"); */

console.warn("警告輸出!歐陽勤斌");

/* 方式四 console.error("錯誤輸出!控制臺輸出");*/

console.error("錯誤輸出!歐陽勤斌");

/* 方式五 prompt("Hello, javascript 歐陽勤斌 彈框輸出");*/

prompt("Hello, javascript 歐陽勤斌");

/* 方式六 confirm("Hello, javascript 歐陽勤斌 彈框輸出");*/

confirm("Hello, javascript 歐陽勤斌");

/* 方式七 document.write("歐陽勤斌 網(wǎng)頁中輸出");*/

document.write("歐陽勤斌");

/*document.getElementById("div1").innerHTML = "吧啦吧啦吧啦吧啦";

document.getElementById("div2").innerText = "吧啦吧啦吧啦吧啦"; */

04js注意事項(xiàng)

<!DOCTYPE html>

<html>

? ? ? <head>

? ? ? ? ? <title>04js注意事項(xiàng)</title>

? ? ? ? ? <meta http-equiv="content-type" content="text/html; charset=utf-8"/>

? ? ? </head>

? ? ? <body>

? ? ? </body>

? ? ? <script src="../js/04.js"></script>

</html>

/*

1、編寫Javascript注意語法規(guī)范,一行代碼結(jié)束后必須在代碼最后加上分號(;)

? 如果不寫分號,瀏覽器會自動添加,但是會消耗一些系統(tǒng)資源;此外,容易加錯分號,所以在開發(fā)中分號必須要寫。

2、在Javascript中是嚴(yán)格區(qū)分大小寫的

3、javascript中會忽略多個空格和換行

*/

document.write("歐陽勤斌")

document.write("歐陽勤斌")

document.write("歐陽勤斌")

document.write("歐陽勤斌")? /* 這樣可以輸出 */

// document.write("歐陽勤斌")document.write("歐陽勤斌") // 這樣就不能輸出了。

document.write("歐陽勤斌");? //這樣可以輸出。正確的輸出方式。

//Docunent.write("我是歐陽。"); //這樣就不能輸出。 在Javascript中是嚴(yán)格區(qū)分大小寫的

/*

document.write("? ? ? ? ? ? //雙引號的位置

我是ouyang。

"); //這里報(bào)錯了。

*/

/*

console.log("

我是ouyang

");? //這樣寫也會報(bào)錯。

*/

console.log(

"我是ouyang."

)? //這樣寫就可以。

05js的注釋

<!DOCTYPE html>

<html>

? ? ? <head>

? ? ? ? ? <title>05js的注釋</title>

? ? ? ? ? <meta http-equiv="content-type" content="text/html; charset=utf-8"/>

? ? ? </head>

? ? ? <body>

? ? ? </body>

? ? ? <script src="../js/05.js"></script>

</html>

// 兩條斜線--- 單行注釋。

alert("我是ouyang."); //這是一個彈框。

/*

兩條斜線+兩個星號表示---- 多行注釋 注釋內(nèi)容在兩個星號之間。

*/

console.log("我是ouyangqb.");

/*

這是在控制臺上顯示。

*/

//? 單行注釋中可以有多行注釋,但是必需是寫在一行上 /**/

// 單行注釋中 可以重復(fù)使用單行注釋。//1? //2? //3

document.write("我要把名字寫在網(wǎng)頁上:ouyangqb."); // 輸出到網(wǎng)頁上/*這樣寫是可以的*/

/*

多行注釋中也可以有單行注釋的標(biāo)志 //也可以寫在這里。

*/

06js常量和變量

<!DOCTYPE html>

<html>

? ? ? <head>

? ? ? ? ? <title>06js常量和變量</title>

? ? ? ? ? <meta http-equiv="content-type" content="text/html; charset=utf-8"/>

? ? ? </head>

? ? ? <body>

? ? ? </body>

? ? ? <script src="../js/06.js"></script>

</html>

console.log(3+5); /* 數(shù)值常量 */

console.log(0.3+0.8);

console.log("a"+"b"); /* 字符串常量 一般用雙引號或單引號 引住 */

console.log("56"); //這個是字符串常量。

console.log(true); //布而常量

console.log(false);

//特殊字符常量

console.log("\n");? //回車

//變量

/*

當(dāng)一個數(shù)據(jù)的值需要經(jīng)常改變或不確定時,就應(yīng)該用變量來表示。

購物和購物車的關(guān)系。

定義變量的目的:在內(nèi)存中分配一塊存儲空間給變量,方便以后存儲數(shù)據(jù)。

如何定義變量:定義變量(聲明變量),任何變量在使用之前,必須先進(jìn)行定義。

如果定義了多個變量,就會為這多個變量分配不同的存儲空間。

var 變量名稱。(聲明變量)

*/

var name;

var sex;

var age;

// 上面是一種定義變量的方法。

var name,sex,age;

// 這也是一種定義變量的方法。用倒號分開兩個變量之間,分號結(jié)束。

//變量的賦值 =

var name,sex,age;

name = "ouyangqinbin";

sex = "男";

age = 43;

console.log(name);

console.log(sex);

console.log(age);

07js變量的聲明

<!DOCTYPE html>

<html>

? ? ? <head>

? ? ? ? ? <title>07js變量的聲明</title>

? ? ? ? ? <meta http-equiv="content-type" content="text/html;charset=utf-8"/>

? ? ? </head>

? ? ? <body>

? ? ? </body>

? ? ? <script src="../js/07.js"></script>

</html>

//變量的聲明 var 變量名;

var name = "歐陽勤斌",? //邊定義邊初始化

sex = "男",

age = 43;

console.log(name);

console.log(sex);

console.log(age);

// = 是 賦值符號?

var name = "歐陽勤斌";

var sex = "男";

var age = 43;

console.log(name);

console.log(sex);

console.log(age);

//另一種變量的聲明和賦值方法

var name = "歐陽勤斌";

sex = "男"; //這種是沒有聲明直接調(diào)用的變量

age = 43; //這種是沒有聲明直接調(diào)用的變量? 和上面的有不同的。

console.log(name);

console.log(sex);

console.log(age);

//變量第一次賦值,可以稱為“初始化”

//先定義 后初始化。

var name,sex,age;

name = "歐陽勤斌";

sex = "男";

age = 43

console.log(name);

console.log(sex);

console.log(age);

//邊定義的同時進(jìn)行初始化

var name = "歐陽繼州",sex = "男"; age =13;

console.log(name);

console.log(sex);

console.log(age);

//其他表現(xiàn)形式

var name = name_one = name_two = "歐陽繼霖";

console.log(name);

console.log(name_one);

console.log(name_two);

//如果定義后沒有初始化。也叫部分初始化

var name,sex = "男",age =43;

//查看變量的值。直接輸出就可以。console.log(變量名);

console.log(sex);

alert(sex);

document.write(sex);

//如何改變變量的值。

var sex = "男";

console.log(sex);

sex = "女";

console.log(sex);

//關(guān)鍵字和保留字

//var? break? do instanceof? typeof? case? else? new? for? 關(guān)鍵字

//class? enum? extends? super? 保留字

/*命名一個標(biāo)識符時需要遵守如下的規(guī)則:

1、標(biāo)識符中可以含有字母、數(shù)字、下劃線 $符號。

2、標(biāo)識符不能以數(shù)字開頭

3、標(biāo)識符不能是ES中關(guān)鍵字或保留字

4、嚴(yán)格區(qū)分大小寫,比如name 和 NAME是2個不同的標(biāo)識符

5、標(biāo)識符一般都采用駝峰命名法

*/

//正確的命名法。

var name,$sex,name_,age43;

//不正確的命名法。

//var 12name;

08js數(shù)據(jù)類型

<!DOCTYPE html>

<html>

? ? ? <head>

? ? ? ? ? <title>08js數(shù)據(jù)類型</title>

? ? ? ? ? <meta http-equiv="content-type" content="text/html; charset=utf-8"/>

? ? ? </head>

? ? ? <body>

? ? ? </body>

? ? ? <script>

? ? ? ? ? ? /*

? ? ? ? ? ? 數(shù)據(jù)類型分為簡單的數(shù)據(jù)類型和復(fù)雜的數(shù)據(jù)類型

? ? ? ? ? ? 簡單的數(shù)據(jù)類型分為:數(shù)值類型、字符類型、布爾類型、undefined(變量未初始化)、null(空類型)

? ? ? ? ? ? 查看 數(shù)據(jù)的類型? typeof 變量

? ? ? ? ? ? */

? ? ? ? ? ? console.log(typeof 11);

? ? ? ? ? ? // number? 數(shù)值類型

? ? ? ? ? ? console.log(typeof "10");

? ? ? ? ? ? // string? 字符串類型

? ? ? ? ? ? ?var number1 = 123, number2 = 1.23;

? ? ? ? ? ? console.log(typeof number1);

? ? ? ? ? ? console.log(typeof number2);

? ? ? ? ? ? //數(shù)值類型的最大、最小值。

? ? ? ? ? ? console.log(Number.MAX_VALUE); //這個是數(shù)值的最大值。

? ? ? ? ? ? console.log(Number.MIN_VALUE); //這個是輸出數(shù)值的最小值

? ? ? ? ? ? //無窮大? infinity,如果超過了最大值就會返回該值

? ? ? ? ? ? console.log(Number.MAX_VALUE+Number.MAX_VALUE);

? ? ? ? ? ? //無窮小 -infinity,如果超過了最小值就會返回該值

? ? ? ? ? ? //查看 無窮大和無窮小的類型

? ? ? ? ? ? console.log(typeof Infinity);

? ? ? ? ? ? console.log(typeof -Infinity);

? ? ? ? ? ? //NaN 非法數(shù)字(Not A Number)

? ? ? ? ? ? console.log("中國"-12);

? ? ? ? ? ? console.log("中國"+12);

? ? ? ? ? ? //這是的加號(+)是做字符串的拼接。

? ? ? ? ? ? //Number 類型的注意事項(xiàng)。

? ? ? ? ? ? var number3 = 100, number4 = 200;

? ? ? ? ? ? var number5 = 1.23, number6 = 2.56;

? ? ? ? ? ? console.log(number3+number4);

? ? ? ? ? ? console.log(number5+number6);

? ? ? ? ? ? console.log(1.56*2.85); //這里會出現(xiàn)00000001的值。所以我們只要求最小數(shù)位就可以了。

? ? ? ? ? ? //字符串類型

? ? ? ? ? ? /*字符串類型是由單引號或雙引號括起。*/

? ? ? ? ? ? console.log(typeof a); //這里a是一個未初始化的變量。 所以這個是undefined類型,

? ? ? ? ? ? console.log(typeof "a");//這里的a是一個字符串類型。

? ? ? ? ? ? //使用字符串注意事項(xiàng)

? ? ? ? ? ? var str1 = "hello";

? ? ? ? ? ? ?var str2 = "world";

????????????console.log(str1);

????????????console.log(str2);

????????????//查看變量的類型

????????????console.log(typeof str1);

????????????console.log(typeof str2);

????????????//var str3 ='hello world"; // 錯誤的寫法一單一雙。 SyntaxError: '' string literal contains an unescaped line break

????????????//var str4 = "hello world';// 錯誤的寫法一雙一單。 SyntaxError: "" string literal contains an unescaped line break

????????????//var str5 =""hello" "world"";? //錯誤的寫法雙中含雙。SyntaxError: unexpected token: identifier

????????????//var str6 = ''hello' + 'world'';? //錯誤的寫法單中含單。SyntaxError: unexpected token: identifier

????????????//正確寫法

????????????//不能是一單一雙,必須成對出現(xiàn)

????????????//相同引號不能嵌套,不同引號可以嵌套。

????????????var str3 = "'hello'+'world'";

????????????console.log(str3);

????????????console.log(typeof str3);

????????????var str4 ='"hello"+"world"';

????????????console.log(str4);

????????????//布爾類型

????????????/*布爾類型也被稱為邏輯值類型或者真假值類型

????????????布爾類型只能夠取真(true)和假(false)兩種數(shù)值,也代表1和0,實(shí)際運(yùn)算中true = 1,false = 0;

????????????*/

????????????var true1 = true;

????????????console.log(true1); //true

????????????console.log(typeof true1); //boolean

????????????console.log(typeof Boolean(0)); //boolean

????????????console.log(Boolean(0)); //false

????????????console.log(Boolean(1)); //true

????????????console.log(typeof 1); //number

????????????//布爾類型注意 一定是Boolean(常量)

????????????/*

????????????任何非零數(shù)值都是true,包括正負(fù)無窮大、小,只有0和NaN是false;

????????????任何非空字符串都是true,只有空字符串是false

????????????任何對象都是true 只有null和undefined是false

????????????*/

????????????console.log(Boolean(0)); //false

????????????console.log(Boolean(10)); //true

????????????console.log(Boolean("")); //false

????????????var bool1 = "";

????????????console.log(typeof bool1); //string

????????????console.log(Boolean(" ")); //true

????????????//undefined是Undefined類型的字面量 表示變量未賦值,這種類型只有一種值就是undefined.

????????????var num1;

????????????console.log(num1);

????????????var num2 = undefined;

????????????console.log(num2);

????????????//Null類型是第二個只有一個值的數(shù)據(jù)類型,這個特殊的值是null;

????????????var stri1 = null;

????????????var stri2 = undefined;

????????????console.log(stri1 == stri2);

????????????console.log(stri1===stri2);? //它們的值是相等但是類型是不同。

????????</script>

</html>

09js數(shù)據(jù)類型的轉(zhuǎn)化

<!DOCTYPE html>

<html>

????????<head>

????????????<title>09js數(shù)據(jù)類型的轉(zhuǎn)化</title>

????????????<meta http-equiv="content-type" content="text/html; charset=utf-8"/>

????????</head>

????????<body>

????????</body>

????????<script>

????????????//數(shù)據(jù)類型之間的轉(zhuǎn)換

????????????/*數(shù)字類型轉(zhuǎn)換成字符串類型? toString 格式:變量.toString(); */

????????????var num1 = 123;

????????????//數(shù)字類型轉(zhuǎn)換成字符串類型

????????????console.log(typeof num1.toString()); //輸出類型。

????????????console.log(num1.toString()); //輸出成果。

????????????//num1.toString() //轉(zhuǎn)換格式

????????????//布爾類型轉(zhuǎn)換成字符串類型? toString 格式:變量.toString();

????????????var bool1 = true;

????????????console.log(bool1);

????????????console.log(typeof bool1);

????????????var str1 = bool1.toString();

????????????console.log(str1);

????????????console.log(typeof str1);

????????????//注意:null和undefined沒有toString()方法,如果強(qiáng)行調(diào)用,則會報(bào)錯。

????????????var str2 = null;

????????????console.log(str2);

????????????//var stri2 = str2.toString(); //不能轉(zhuǎn)換

????????????//console.log(stri2); // 報(bào)錯了:Uncaught TypeError: Cannot read property 'toString' of null

????????????var str3 = "";

????????????console.log(str3); //空字符串

????????????console.log(typeof str3); //string

????????????var stri3 = str3.toString(); //字符串轉(zhuǎn)換成字符串

????????????console.log(stri3); //空字符串

????????????console.log(typeof stri3); //string

????????????var str4;

????????????console.log(str4); //undefined

????????????//var stri4 = str4.toString(); //報(bào)錯了:undefined是不能轉(zhuǎn)換成字符串 Uncaught TypeError: Cannot read property 'toString' of undefined

????????????//console.log(stri4);

????????????var str5 = undefined;

????????????console.log(str5);

????????????//var stri5 = str5.toString(); //報(bào)錯了:undefined是不能轉(zhuǎn)換成字符串 Uncaught TypeError: Cannot read property 'toString' of undefined

????????????//console.log(stri5);

????????????//NaN類型的轉(zhuǎn)換字符串類型

????????????var str6 = NaN;

????????????console.log(str6); //輸出:NaN

????????????console.log(typeof str6); //輸出類型:number;

????????????var stri6 = str6.toString();

????????????console.log(stri6);

????????????console.log(typeof stri6);

????????????//null和undefined 轉(zhuǎn)換成字符串。 用String()函數(shù)轉(zhuǎn)換 格式:String(變量);

????????????var str7 = null;

????????????var stri7 = String(str7);

????????????console.log(stri7);

????????????console.log(typeof stri7);

????????????var str8;

????????????console.log(str8);

????????????var stri8 = String(str8);

????????????console.log(stri8);

????????????console.log(typeof stri8);

????????????//強(qiáng)制轉(zhuǎn)換 +

????????????var name = "歐陽勤斌";

????????????var age = 43;

????????????console.log(name + age);

????????????console.log(typeof (name + age));

????????????//最好用的是 + ""; 加上一個空字符串就好。

????????????var num2 = 245;

????????????console.log(num2+"");

????????????console.log(typeof (num2+""));

????????????var num3 = null,num4 = undefined;

????????????var numb3 = null +"";

????????????var numb4 = undefined +"";

????????????console.log(numb3);

????????????console.log(numb4);

????????????console.log(typeof numb3);

????????????console.log(typeof numb4);

????????????//1、字符串 轉(zhuǎn) 數(shù)字? 格式:Number(變量)

????????????var str9 = "12345";

????????????var stri9 = Number(str9);

????????????console.log(stri9);

????????????console.log(typeof stri9);

????????????//2、如果字符串中有非數(shù)字的內(nèi)容時,則轉(zhuǎn)換為NaN

????????????var str10 = "150ab";

????????????var stri10 = Number(str10);

????????????console.log(stri10);

????????????console.log(typeof stri10);

????????????var str11 = "ab120";

????????????var stri11 = Number(str11);

????????????console.log(stri11);

????????????console.log(typeof stri11);

????????????//3、如果字符串是一個空串或者是一個全是空格的字符,則轉(zhuǎn)換為0;

????????????var str12 = "";

????????????var stri12 = Number(str12);

????????????console.log(stri12); //0

????????????console.log(typeof stri12); //number

????????????var str13 = "? ? ";

????????????var stri13 = Number(str13);

????????????console.log(stri13); //0

????????????console.log(typeof stri13); //number

????????????//undefined 轉(zhuǎn)換成數(shù)字類型

????????????var str14;

????????????console.log(str14);

????????????stri14 = Number(str14); //轉(zhuǎn)換成為NaN

????????????console.log(stri14);

????????????console.log(typeof stri14); //number類型

????????????var str15 = undefined;

????????????var stri15 = Number(str15);

????????????console.log(stri15);

????????????console.log(typeof stri15);

????????????//null 轉(zhuǎn)換為 數(shù)字類型

????????????var str16 = null;

????????????var stri16 = Number(str16); //0

????????????console.log(stri16); //輸出:0

????????????console.log(typeof stri16); //number

????????????//布爾類型 轉(zhuǎn)換為 數(shù)字類型

????????????//布爾類型只有兩個值 true 和 false

????????????var str17 = true;

????????????var stri17 = Number(str17);

????????????console.log(stri17);

????????????console.log(typeof stri17);

????????????var str18 = false;

????????????var stri18 = Number(str18);

????????????console.log(stri18);

????????????console.log(typeof stri18);

????????????//parseInt()或parseFloat()可以提取字符串中的有效整數(shù)

????????????//parseInt() 提取字符串中的整數(shù)。只能提取數(shù)字開頭的字符串值。

????????????var str19 = "av45bc";

????????????var stri19 = parseInt(str19); //NaN? 不能提取字母開頭中的數(shù)字。

????????????console.log(stri19); //輸出:NaN

????????????var str20 = "124abe";

????????????var stri20 = parseInt(str20); //124

????????????console.log(stri20); //輸出:124

????????????var str21 = "125.65adbe";

????????????var stri21 = parseInt(str21); //這個提取的是整數(shù)。

????????????var strf21 = parseFloat(str21); //這個提取的是小數(shù)(浮點(diǎn)數(shù))

????????????console.log(stri21); //輸出整數(shù)部分 125

????????????console.log(strf21); //輸出的是小數(shù) 125.65

????????</script>

</html>

10js運(yùn)算符操作

<!DOCTYPE html>

<html>

<head>

<title>10js運(yùn)算符操作</title>

<meta http-equiv="content-type" content="text/html; charset=utf-8"/>

</head>

<body>

</body>

<script>

//頁內(nèi)式

//運(yùn)算符操作? 按照功能劃分:算術(shù)運(yùn)算符? 位運(yùn)算符? 關(guān)系運(yùn)算符 邏輯運(yùn)算符。

//按照操作數(shù)個數(shù)劃分:單目運(yùn)算? 雙目運(yùn)算? 三目運(yùn)算。

// + 運(yùn)算

var num = 100 + 200;

console.log(num);

var numb1 = 100;

var numb2 = 200;

var num1 = numb1 + numb2;

console.log(num1);

// 1、非Number類型的值進(jìn)行運(yùn)算時,會將這些值轉(zhuǎn)換為Number然后在運(yùn)算。

/* 布爾類型 和 數(shù)字類型運(yùn)算 */

var num2 = true + 2; //true? 相當(dāng)于整數(shù)的 1? 結(jié)果是:3

console.log(num2);

var num3 = true + false; //false 相當(dāng)于整數(shù)的 0? 結(jié)果是:1

var num4 = false + 3; //結(jié)果是:3

console.log(num3); //輸出是:1

console.log(num4); //輸出是:3

/* null 和數(shù)字類型運(yùn)算 */

var numb3 = null;

var num5 = numb3 + 10;

console.log(Number(null)); //輸出結(jié)果:0

console.log(num5); //輸出結(jié)果:10

/* 任何數(shù)值和NaN作運(yùn)算結(jié)果都是 NaN? 這里講的是數(shù)值,不是字符串 */

var numb4 = 200;

var num6 = numb4 + NaN; //結(jié)果是:NaN

console.log(num6); //輸出是:NaN

var str1 = "ouyangqinbin";

var stri1 = str1+NaN; //結(jié)果是:ouyangqinbinNaN

console.log(stri1); //輸出是:ouyangqinbinNaN

/* 任何數(shù)值和字符符串做加法運(yùn)算,都會先把數(shù)值轉(zhuǎn)換為字符串,然后再和字符串做拼接的操作 */

var numb5 = 100 + "200"; //結(jié)果是:100200

console.log(numb5); //輸出是:100200

console.log(typeof numb5); //輸出是:string 字符串類型

var numb6 = 100 + "false"; //結(jié)果是:100false

console.log(numb6); //

console.log(typeof numb6);

// - 運(yùn)算符

var res = 100 -40;

console.log(res); //輸出:60

var res1 = 100 - 140;

console.log(res1); //輸出:-40

//字符串做減法也會轉(zhuǎn)換為Number

var res2 = 100 + "15";

console.log(res2); //輸出:10015

var res3 = 100 - "16";

console.log(res3);

//字符串中不只是數(shù)字而是由數(shù)字和字母組成

var res4 = 100 - "15ab";

var res5 = 100 - "ab45";

console.log(res4); //輸出:NaN

console.log(res5); //輸出:NaN

//1、非Number類型的值進(jìn)行運(yùn)算時,

var res6 = 100 -true;

console.log(res6); //輸出:99

// * 運(yùn)算符

var res7 = 100 * 123;

console.log(res7);

// / 運(yùn)算符

var res8 = 100 / 25;

console.log(res8);

// 當(dāng)分母為0時,

var res9 =100 / 0;

console.log(res9); //Infinity

// % 取余運(yùn)算? number1 % number2

var res10 = 10 % 3;

console.log(res10);

var res11 = 10 % 2.5;

console.log(res11);

//m%n 求余,相當(dāng)于m/n 獲取余數(shù) n等于0時 返回NaN.?

var res12 = 100 % 0;

console.log(res12);

//m等于0時,結(jié)果為0;

var res13 = 0 % 120;

console.log(res13);

//m>n時 正常求余。9 % 4 =1

var res14 = 8 % 3;

console.log(res14);

//m<n時結(jié)果是m. 2 % 5 = 2;

var res15 = 3 % 8;

console.log(res15);

//正/負(fù) 運(yùn)算符。

//正號不會對數(shù)字產(chǎn)生任何影響。

var numbe1 = 100;

console.log(numbe1);

var numbe2 = +100;

console.log(numbe2); //加上一個十號但是數(shù)值沒有什么影響。

var numbe5 = -100;

var numbe6 =+ numbe5;

console.log(numbe6);

//對于非Number類型的值,會將轉(zhuǎn)換為Number,然后再運(yùn)算。

var numbe3 = +"15";

console.log(numbe3);

var numbe4 = + "45asdf";

console.log(numbe4);

//不會自動取數(shù)字部分。

//賦值運(yùn)算符 =

//var 變量 = 數(shù)值;

var mun = 100;

var value = mun;

var value = mun =100;

mun = 90;

console.log(value);

console.log(mun);

//注意事項(xiàng): 左邊一定是變量,

/* 100 = 200;

200 = mun2;

都是錯誤寫法。

*/

//復(fù)雜的? += -= *= /=

var a=100;

a+=10; //a=a+10;

console.log(a); //輸出:110

var b=200;

b-=20; //b=b-20;

console.log(b); //輸出:180

var c =100;

c *=100+30; //c=c(100+30);

console.log(c); //輸出:13000

//從而得出:先算右邊 再算復(fù)雜運(yùn)算。

//自增、自減運(yùn)算符

//在程序設(shè)計(jì)中,經(jīng)常遇到 "i=i+1" 和 "i=i-1" 這兩種極為常用的操作。

/*javascript語言為這種操作提供了兩個更為簡潔的運(yùn)算符,即 ++ 和--,分別叫做自增運(yùn)算符和自減運(yùn)算符。*/

var i = 10, j = 20;

i+=1; //i++, ++i

j-=1; //i--, --i

console.log(i);

console.log(j);

var x = 10, y = 20, z = 30, z1 = 40;

x--;

--y;

z++;

++z1;

console.log(x);

console.log(y);

console.log(z);

console.log(z1);

//無論運(yùn)算符號在前還是在后,變量在自身基礎(chǔ)上都會改變。上面情況。

/*后綴表達(dá)式 x++ x--;先用x的當(dāng)前值作為表達(dá)式的值,再進(jìn)行自增自減運(yùn)算。即“先用后變”,也就是先用變量的參與運(yùn)算,變量的值再進(jìn)行自增自減變化。*/

var x1 = 20, y1 = 30;

x1++;

y1++;

var z2 = x1 + y1;

console.log(z2); //輸出:52

console.log(x1); //輸出:21

console.log(y1); //輸出:31

var x3 = 20, y3 = 30;

var z4 = (x3++) + (y3++); //結(jié)果:50

console.log("z4 ="+z4); //輸出:50

console.log("x3 ="+x3); //輸出:21

console.log("y3 ="+y3); //輸出:31

//分開寫的結(jié)果和綜合寫的結(jié)果是不一樣的。

var x2 = 20, y2 = 30;

x2--;

y2--;

var z3 = x2 + y2;

console.log(z3); //輸出:48

console.log(x2); //輸出:19

console.log(y2); //輸出:29

var x5 = 20, y5 = 30;

var z5 = (x5--)+(y5--); //結(jié)果:50

console.log("z5 =" + z5); //輸出:50

console.log("x5 =" + x5); //輸出:19

console.log("y5 =" + y5); //輸出:29

/*前綴表達(dá)式 ++x --x;其中x表示變量名,先完成變量的自增或自減運(yùn)算,再用X的值作為表達(dá)式的值,即“先變后用”,也就是變量的值先變,再用變量的值參與運(yùn)算*/

var x6 = 20, y6 = 30;

--x6;

--y6;

var z6 = x6 + y6;

console.log("z6 =" + z6);

console.log("x6 =" + x6);

console.log("y6 =" + y6);

var x7 = 20, y7 = 30;

var z7 = (--x7) + (--y7);

console.log("z7 =" + z7);

console.log("x7 =" + x7);

console.log("y7 =" + y7);

var x8 = 30, y8 = 40;

++x8;

++y8;

var z8 = x8 + y8;

console.log("z8 =" + z8);

console.log("x8 =" + x8);

console.log("y8 =" + y8);

var x9 = 20, y9 = 30;

var z9 = (++x9) + (++y9);

console.log("z9 =" + z9);

console.log("x9 =" + x9);

console.log("y9 =" + y9);

//分開寫的結(jié)果和綜合寫的結(jié)果是一樣的。

</script>

</html>

10js運(yùn)算符自增自減練習(xí)

<!DOCTYPE html>

<html>

<head>

<title>js運(yùn)算符自增自減練習(xí)</title>

<meta http-equiv="content-type" content="text/html; charset=utf-8"/>

</head>

<body>

</body>

<script>

var i = 2, j = 5;

//1、自增或自減在表達(dá)式中時,如果符號是在變量后面時。它會先用原值運(yùn)算,后自增或自減

var z = i++ + j++;

document.write(z +"<br/>");

document.write("i =" +i +"<br/>");

document.write("i =" +j +"<br/>"+"<br/>");

var x = 5, y = 7;

var z =x-- + y--;

document.write(z +"<br/>");

document.write("x =" +x +"<br/>");

document.write("y =" +y +"<br/>"+"<br/>");

//2、自增或自減在表達(dá)式中時,如果符號是在變量前面時,它會先自增或自減后,再做運(yùn)算。

var i1 = 8, j1 = 10;

var z1 = ++i1 + ++j1;

document.write(z1 +"<br/>");

document.write("i1 =" + i1 +"<br/>");

document.write("j1 =" + j1 +"<br/><br/>");

var x1 = 8, y1 = 10;

var z2 = --x1 + --y1;

document.write(z2 +"<br/>");

document.write("x1 =" + x1 +"<br/>");

document.write("y1 =" + y1 +"<br/><br/>");

//練習(xí)五

var n = 5, m = 6, z;

var z3 = ++n + ++m; //z = 13;? 先做自增或自減。再參加運(yùn)算。

document.write("z3 =" + z3 + "<br/><br/>");

// n = 6? m = 7

var z4 = ++n + m++; //z1 = 14; 第一個n是做自增或自減,再做去處,第二個m是先做運(yùn)算再做自增或自減。

document.write("z4 =" + z4 + "<br/><br/>");

//n =7 m = 8

z5 = ++n + n++; //n=16;? n++ 第一個n是做自增或自減,但是它會把值自動賦到第二個n上。最后再用n自增或自減。

document.write("z5 =" + z5 + "<br/>");

document.write("n =" + n +"<br/><br/>");

//這里第一個n是8,第二個n也是8;最后n是 9; //n的值有點(diǎn)亂。

var o =5, p=6,q;

q = ++o + p++; // q = 12? o = 6

document.write("q =" + q + "<br/>");

document.write("o =" + o + "<br/><br/>");

o = ++o + o++; // 第一個o為 7? 它把o自動賦值到第二個o中。所以第二個o是7 // 14

document.write("o =" + o + "<br/><br/>");

var i2 = 0, j2, k2;

j2 = i2++; //j2 = 0 i2 = 1

k2 = --i2; //k2 = 0 i2 = 0? ? j2 = 0? k2 = 0 i2 = 0

document.write("i2 =" + i2 +"<br/>");

document.write("j2 =" + j2 +"<br/>");

document.write("k2 =" + k2 +"<br/><br/>");

//練習(xí)六

var i3 = 0, j3,k3;

j3 = ++i3 + i3++; //1+1 = 2? 賦值給j3? i++ 2

console.log(j3);

document.write("j3 =" + j3 +"<br/>");

k3 = --i3 + i3--; //i3 = 1? k3 =2 i=0;

console.log(k3);

document.write("k3 =" + k3 +"<br/><br/>");

console.log(i3);

//練習(xí)七

var i4 = 5,j4,k4;

j4 = ++i4;? //先自增或自減,再運(yùn)算。 j4 = 6

k4 =--j4+i4; //先自增或自減,再運(yùn)算。k4 = 11

console.log(j4);

console.log(k4);

document.write("j4 =" +j4 +"<br/>");

document.write("k4 =" +k4 +"<br/>");

k4 =i4+(++j4);? //12

console.log(k4);

document.write("k4 ="+k4 +"<br/>" +"<br/>");

</script>

</html>


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

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

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