前言:
學習一門編程語言的基本步驟
(01)了解背景知識
(02)搭建開發環境
(03)語法規范
(04)常量和變數
(05)資料型別
(06)資料型別轉換
(07)運算子
(08)邏輯結構
(09)函式
(10)物件
10.物件
包裝物件,目的是讓原始型別像參考型別一樣,具有屬性和方法,
JS提供了3種包裝物件:String,Number,Boolean
04.String物件
1) 將任意資料轉為字串
new String(值) 回傳物件,使用和字串沒有區別
//String物件——new String() var str1=new String ("a");//帶new都是建構式,可以回傳函式 console.log(str1,typeof str1);//String {"a"} "object"
String(值) 回傳字串
//String物件——String var str1="a"; console.log(str1+'b'); //將任意資料轉為字串——String() var str2=String(true);//普通函式 console.log(str2,typeof str2);//true string
2) 轉義字符—— \
解釋:轉換字符的意義
用法:放在要轉換意義的字符前邊
注意:斜杠:"/" 與反斜杠:"\" ,此處不可互換
\’ 將特殊意義的引號轉成普通字符
\n 將字符n轉換成換行符
\t 將字符t轉換成制表符(tab鍵效果)
//轉義字符——\ console.log("It's a cat");// 雙引號,里外使用不同的引號區分 console.log('It\'s a cat');//單引號與單引號的使用是沖突的,可使用轉義字符 console.log('hello \n world');//單引號 \n n不見了,并且world換行 console.log('a\tb')//a b,制表符,tab鍵四個空格
3)字串下的api
length 獲取字串的長度,
// 獲取長度——length var str='javascript'; console.log(str.length);//10
charAt() 獲取下標對應的字符,也可以使用陣列形式 字串[下標],
//獲取下標對應的字符——charAt() var str='javascript'; console.log(str[0]);//j console.log(str.charAt(0));//j
split(sep)將字串按照制定的字符分割成陣列,sep是指定的字符,
//將字串按照制定的分隔符號轉為陣列——split(sep) var str='a-b-c'; console.log(str.split("-"));// ["a", "b", "c"] //將陣列按照制定的分割符轉為字串, //注意兩處區別,一個數陣列變字串,一個是字串變陣列 var arr=['a','b','c','d']; console.log(arr.join("-"));//a-b-c-d
slice(start,end) 截取字串,start開始的下標,end結束的下標,不包含end本身,end為空截取到最后,負數表示倒數,
//截取字串——slice(start,end) var str='javascript'; console.log(str.slice(4));//下標4之后截取到最后 console.log(str.slice(4,7));//截取到下標7,但是不包含下標7 console.log(str.slice(-3));//倒數第三位截取到最后 console.log(str.slice(-3,-1));//倒數第三位截取到倒數第二位
substr(start,count)截取字串,start開始的下標,count截取的長度,如果count為空,截取到最后;start為負數,表示倒數,
//截取字串,按長度來截取——substr(start,count) var str='javascript'; console.log(str.substr(2,3));//從下標2開始截取,截取三位 console.log(str.substr(4));//end為空,截取到最后 console.log(str.substr(-3));//負數為倒數
substring(start,end) 截取字串,start開始的下標,end結束的下標,不包含end本身,如果end為空截取到最后,如果下標為負數自動轉成0,
//截取字串——substring(start,end) var str='javascript'; console.log(str.substring(4)); console.log(str.substring(4,7));//從小標4開始,截取到下標6 //負數轉為0 console.log(str.substring(-3,-1));//-3代表0,所以是截取不到東西的 console.log(str.substring(1,3)); console.log(str.substring(3,1));//自動轉換前后的數字大小,下標位置大的數值會轉換到后面
indexOf(value,start)查找某個字串出現的下標,value要查找的字串,start開始的下標,默認是0,如果找不到回傳-1,
//獲取某個字串的下標——indexOf(value,start) var str='javascript'; console.log(str.indexOf('s')); console.log(str.indexOf('a',2));//2的意思是下標2的位置開始 console.log(str.indexOf('a',5));//-1,找不到回傳為-1
lastIndexOf(value)查找某個字串最后一次出現的下標,找不到回傳-1,
//查找某個字符最后一次出現的下標——lastIndexOf(value) var str='javascript'; console.log(str.lastIndexOf('a'));//3 console.log(str.lastIndexOf('b'));//找不到回傳-1
toUpperCase() 將英文字母轉大寫
//轉大寫——toUpperCase() var str='JavaScript'; console.log(str.toUpperCase());//JAVASCRIPT
toLowerCase() 將英文字母轉小寫
//轉小寫——toLowerCase() var str='JavaScript'; console.log(str.toLowerCase());//javascript
對比slice和 substring
slice為截取陣列中的元素,slice中下標允許使用負數表示倒數,slice中下標的順序start小于end
substring為截取字串,substring下標負數自動轉成0,substring中下標大小不分順序,會自動排序
05.Number物件
new Number(值) 將資料轉為數值型,回傳物件
//將資料轉為數值型,回傳數值—— Number(值) var num1=2; var num2=Number(true); console.log(num1,num2);
Number(值) 將資料轉為數值型,回傳數值
//將資料轉為數值型,回傳物件—— new Number(值)建構式 var num3=new Number(null);//包裝物件 console.log(num3,typeof num3);
Number.MAX_VALUE 最大值
//最大值——Number.MAX_VALUE console.log(Number.MAX_VALUE);//最大值1.7976931348623157e+308
Number.MIN_VALUE 最小值,指小數點后面的位置非常多
//最小值——Number.MIN_VALUE console.log(Number.MIN_VALUE);//最小值5e-324
toFixed() 取小數點后N位
//取小數點后N位——toFixed() var num4=2*3.14*5; console.log(num4.toFixed(2));//取小數點后2位
toString(n) 將數值轉為字串,同時可以設定進制,N就是設定的進制,2,8,16
//將數值轉為字串——toString(n) var num6=13; console.log(num6.toString(8));//轉為8進制
06.Boolean物件
new Boolean(值) 將資料轉為布爾型,回傳物件
//new Boolean(值) 將資料轉為布爾型,回傳物件 var b3=new Boolean(3); console.log(b3,typeof b3);
Boolean(值) 將資料轉為布爾型,回傳布爾型
//Boolean(值) 將資料轉為布爾型,回傳布爾型 // NaN 0 "" undefined null,只有這5個是false 其他都是true var b1=true; var b2=Boolean(NaN); console.log(b1,b2);
!!值 轉資料隱式轉換為布爾型
// !!值 轉資料隱式轉換為布爾型 var b5=!!0; console.log(b5);
07.匹配模式(掌握)
作用:用于查找,替換字串
search(value) 用于查找滿足條件的第一個下標,類似于indexOf,如果找不到回傳-1,
//查找滿足條件的第一個下標,找不到回傳-1——search(value) var str='把gudu當成晚餐que難以下咽,把heiye當作溫暖QUE難以入眠'; console.log(str.search('gudu'));//1 console.log(str.search('GUDU'));//-1 找不到 console.log(str.search(/que/));//放在正則運算式中
match(value) 用于查找滿足條件的字串,回傳一個陣列,
//查找滿足條件的字串,回傳一個陣列——match(value) // i -> ignore 忽略大小寫 // g -> global 全域查找 var str='把gudu當成晚餐que難以下咽,把heiye當作溫暖QUE難以入眠'; console.log(str.match('heiye'));//回傳一個陣列 console.log(str.match(/que/i));//i-ignore忽略大小寫 console.log(str.match(/que/g));//g-global 全域的查找 console.log(str.match(/que/ig));//全域忽略大小寫查找
replace(value1,value2) 查找并替換,value1要查找的字串,value2要替換的字串,
//查找并替換——replace(value1,value2) var str='把gudu當成晚餐que難以下咽,把heiye當作溫暖QUE難以入眠'; console.log(str.replace(/heiye/ig,'baitian'));//替換
08.Math物件
用法:不需要創建,可以直接使用,
PI 取圓周率
//獲取圓周率——PI console.log(Math.PI);
abs() 取絕對值
//取絕對值——abs() console.log(Math.abs(18-21));
max() 取最大值
//取一組數字的最大值——max() console.log(Math.max(23,9,78,6,45));
min() 取最小值
//取一組數字的最小值——min() console.log(Math.min(23,9,78,6,45));
pow() x的y次冪
//取x的y次冪——pow() console.log(Math.pow(5,2));
ceil() 向上取整
//向上取整——ceil() console.log(Math.ceil(5.02358));
floor() 向下取整
//向下取整——floor() console.log(Math.floor(4.999));
round() 四舍五入取整
//四舍五入取整——round() console.log(Math.round(4.51));
random() 取0-1之間的亂數 >=0 <1
//取隨機0-1之間的亂數——random() console.log(Math.random());
09.Date物件
用于對日期時間的存盤和計算
1)創建Date物件
new Date()
//創建Date物件 //獲取當前系統時間 var d1=new Date(); console.log(d1);//Tue Feb 25 2020 15:23:13 //手動輸入的日期 var d2=new Date('2020/02/25'); console.log(d2);//默認為0時區的0點0分0秒 var d3=new Date('2020/02/25 10:36:50'); console.log(d3);//輸入是什么時間顯示就是什么時間 var d4=new Date(2020,1,25,10,36,50);//月份范圍是0-11之間,所以1,是2月 console.log(d4); //獲取資料庫存盤的是距離計算機元年的毫秒數 //默認為計算機元年時間為1970-1-1 0:0:0 //365*24*60*60*1000 var d5=new Date(49*365*24*60*60*1000); console.log(d5);//2018/12/20
2)獲取存盤的日期時間
//獲取存盤的日期時間 var d=new Date('2020/02/25 10:56:30'); console.log(d.getFullYear());//獲取年 console.log(d.getMonth()+1);//獲取月份,月份范圍是0-11之間,所以+1才能正常顯示 console.log(d.getDate());//獲取日 console.log(d.getHours());//獲取小時,復數形式 console.log(d.getMinutes());//獲取分鐘 console.log(d.getSeconds());//獲取秒數 console.log(d.getMilliseconds());//獲取毫秒數 console.log(d.getDay());//獲取星期,0-6,一個星期,星期日-星期六 console.log(d.getTime());//獲取距離計算機元年的毫秒數 //練習:創建Date物件,保存當前的系統時間,列印‘今天是2020年2月25日 星期二 15:39’ var now=new Date(); var year=now.getFullYear(); var month=now.getMonth()+1; var date=now.getDate(); var hours=now.getHours(); var minutes=now.getMinutes(); var day=now.getDay(); var arr=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]; console.log(arr[day]);//把day作為下標放在陣列中 //判斷月份是否小于10,如果小于,增加前導0 if(month<10){ month='0'+month } console.log( '今天是'+year+'年'+ month+'月'+ date+'日'+ arr[day]+' ' +hours+':'+ minutes ); //練習:計算距離2020年12月25榷訓有多少天?多少時?多少分?多少秒? //創建兩個物件, var c=new Date('2020/12/25');//圣誕節日期 var now=new Date();//本機時間 //兩個物件直接相減,獲取相差的毫秒數 var d=c-now; //相差的值轉為秒 d=Math.floor(d/1000); //計算相差天數 var day=Math.floor(d/(24*60*60)); //去除天數,計算相差的小時 var hour=d%(24*60*60); hour=Math.floor(hour/3600); //去除小時,計算相差的分鐘 var minutes=d%3600; var minutes=Math.floor(minutes/60); //去除分鐘,計算相差的秒鐘 var second=d%60; //列印最終結果 console.log( '距離2020年的圣誕節還有'+ day+'天'+ hour+'小時'+ minutes+'分鐘'+ second+'秒');
3)獲取本地字串格式
//獲取本地字串格式 var d=new Date(); console.log(d.toLocaleString());//獲取日期時間字串 console.log(d.toLocaleDateString());//獲取日期字串 console.log(d.toLocaleTimeString());//獲取時間字串
4)修改日期時間
//修改日期時間 var d1=new Date('2020/02/25 15:20:30'); d1.setFullYear(2018);//修改年份 d1.setMonth(8);//修改月份范圍0-11,8是九 d1.setDate(3); console.log(d1); d1.setHours(10); d1.setMinutes(36); d1.setSeconds(50); var d2=new Date('2020/02/25 15:20:30'); d2.setMilliseconds(1111111111);//修改距離計算機元年的毫秒數后,時間會發生變化 console.log(d1); console.log(d2);
5)復制克隆Date物件
//克隆date物件 //原理在06.JS物件-1——02.函式物件——3)物件的存盤 var d1=new Date('2020/02/25 15:20:30'); //var d2=d1;//復制d1的地址給d2 var d2=new Date(d1);//克隆了一個物件 d1.setFullYear(2019); console.log(d1);//Mon Feb 25 2019 15:20:30 console.log(d2);//Tue Feb 25 2020 15:20:30 //練習:創建Date物件,保存員工的入職時間”2018/05/31”,3年合同到期,計算到期時間,合同到期前1個月,續簽合同, //如果是周末,提前到周五,如果是周六,那就提前一天,續簽時間,列印出本地日期時間字串格式 //入職時間 var d1=new Date('2018/05/31'); //到期時間 var d2=new Date(d1); //三年后 d2.setFullYear(d2.getFullYear()+3); //續簽時間 var d3=new Date(d2); //計算提前一個月 d3.setMonth(d3.getMonth()-1); //判斷周幾 var day=d3.getDay(); if (day===6){ //如果是周六,提前一天 d3.setDate(d3.getDate()-1); }else if(day===0){ //如果是周末,提前兩天 d3.setDate(d3.getDate()-2); } console.log("入職時間是"+d1.toLocaleDateString());+ console.log("到期時間是"+d2.toLocaleDateString());+ console.log("續簽時間是"+d3.toLocaleDateString());
10.錯誤處理
語法錯誤(SyntaxError)——錯誤的使用了中文符號,缺少括號
//錯誤處理 //js程式執行前,檢查是否有語法錯誤 //語法錯誤——SyntaxError var a=1;//標點符號使用錯誤
參考錯誤(ReferenceError)——使用了未宣告的變數
//參考錯誤,使用未宣告的變數——ReferenceError console.log(a);//a沒有宣告
型別錯誤(TypeError)——錯誤的使用了小括號
//型別錯誤,錯誤的使用了符號——TypeError var b=2; b();//b不是一個函式,不能呼叫 var person={ ename:"tom" } person.ename();//person.ename不是一個函式
范圍錯誤(RangeError)——引數超出了范圍
//范圍錯誤,引數超出了范圍——RangeError var arr=new Array(-3); console.log(arr);
說明:語法錯誤出現后一行代碼都不執行,其他錯誤出現后會影響后面代碼的執行
自定義錯誤:throw '自定義的錯誤資訊'
//自定義錯誤——throw '錯誤' var num="abc"; //如果num不是數字,拋出一個自定義的錯誤 //先呼叫number轉數值 if (isNaN(num)){//判斷是否不是一個數字 throw '請提供一個數字'; }
自定義錯誤:try{ }catch(err){ },嘗試執行,不阻止后續代碼執行
Try{
//可能出現的錯誤(型別錯誤,參考錯誤,范圍錯誤,自定義錯誤)
}catch(err){
//如果try中的代碼報錯,才會執行此處的代碼,會把錯誤的資訊交給err
}
//自定義錯誤——try{}catch(err){}嘗試執行 //提供一個小于10的數字, try{var num=11; if (num>10){ throw"太大了"; } }catch (err){//只有try中的代碼報錯,才會執行catch中的代碼,錯誤資訊交給err console.log(err+":請輸入一個小于10的數字"); }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/147280.html
標籤:JavaScript
上一篇:JS中this的幾種情況
