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>