javascript
javascript基础(第二天)
開胃菜: ?如果復(fù)制一個數(shù)組(淺copy)?
開始的一句話:?http://www.w3school.com.cn/??js犀牛書, js高級程序設(shè)計, 生活必備, 推薦買js犀牛書<javascript權(quán)威指南>
Boolean
? ?!! ?//強制類型轉(zhuǎn)換
? ?!![] //true
? ?!!{} //true
? ?!!'false' //true
Number
? ?Number.MAX_VALUE ?//倒序遍歷設(shè)初始值的時候很有用
? ?Number.MIN_VALUE
? ?(2.1234).toFixed(2) ? ? ?//2.12 (會四舍五入,在截取四舍五入的時候, 精度丟失,不是很準確?(四舍六入五成雙)?)控制小數(shù)點0-20
? ? ? ??(2.444).toFixed(2); //"2.44"
? ? ? ??(2.445).toFixed(2); //"2.44"?異常
? ? ? ??(2.446).toFixed(2); //"2.45"
? ? ? ? (2.4444).toFixed(3); //"2.444"
? ? ? ??(2.4445).toFixed(3); //"2.445"?正確
? ? ? ??(2.4446).toFixed(3); //"2.445"? ? ??
? ? ? ?/*
? ? ? ?* 模擬Math.toFixed()方法 ------->感謝剛哥貢獻
? ? ? ?* 優(yōu)化: 四舍五入精度不準確問題(四舍六入五成對)
? ? ? ?*/
? ? ? ?function toFixed2(number,fractionDigits){
? ? ? ?? ? ? ?return Math.round(number*Math.pow(10,fractionDigits))/Math.pow(10,fractionDigits);
? ? ? ?}
? ? ? ?console.log( toFixed2(2.224,2) ); //2.22
? ? ? ?console.log( toFixed2(2.225,2) ); //2.23
? ? ? ?console.log( toFixed2(2.226,2) ); //2.23
? ? ? ?console.log( toFixed2(2.2224,3) ); //2.222
? ? ? ?console.log( toFixed2(2.2225,3) ); //2.223
? ? ? ?console.log( toFixed2(2.2226,3) ); //2.223
? ?Math.PI.toPrecision(7); ?//"3.141593" 轉(zhuǎn)成10進制形式的字符串.
String
? ??字符串創(chuàng)建后不可修改
? ??var s = 'abcd';
? ? console.log(s[1]);
? ? s[1]='e';
? ? console.log(s[1]);
? ? console.log(s);
? ??" xx ".trim(); ?//這個應(yīng)該是es3的
? ??'abcd'.localeCompare('abcd'); //0
? ?'XxX'.toLowerCase(); ? //xxx ?轉(zhuǎn)小寫
? ?'XxX'.toUpperCase(); ? //XXX 轉(zhuǎn)大寫
? ?split(字符串或者正則,數(shù)組的最大長度); ?
? ?'abcdefg'.substr(開始位置,長度); ?'abcdefg'.substr(0); //截取到結(jié)尾
? ?'abcdefg'.substring(開始位置,結(jié)束位置); ?'abcdefg'.substring(0); //截取到結(jié)尾
? ? ? ? var a = 'abcd';
? ? ? ? var b= a.substr(0);
? ? ? ? var c = a;
? ? ? ? b='bbbb';
? ? ? ? c='cccc';
? ? ? ? console.log(a); ?//abcd
? ?'abcdefg'.slice(開始位置,結(jié)束位置);??'abcdefg'.slice(0); //截取到結(jié)尾
? ?'abcdefgc'.search(/*正則*/ ?/C/img); //第一個與 regexp 相匹配的子串的起始位置,沒找到-1
? ?replace(正則或者字符串, 替換字符串);
? ? ? ? ?var a = 'abcdefgc'; a.replace('c','z'); ? ? ? ? ? ?//abzdefgc
? ? ? ? ?var a = 'abcdedgc'; a.replace(/C/img,'z'); ? ?//abzdefgz?
? ? ? ? ?var a = 'abcdedgc'; a.replace(/C/img,'z'); ? ?console.log(a); ?//abcdedgc?返回新串,不修改原來的喲
? ?match(正則或者字符串);?
? ? ? ? ?'abcdefgc'.match('c'); //['c']
? ? ? ? ?'abcdefgc'.match(/C/img) //["c", "c"]?返回一個匹配的數(shù)組
? ?indexOf(檢索字符串,開始位置); 從前往后, 返回檢索位置,沒找到-1
? ?lastIndexOf(檢索字符串,開始位置);?從后往前,?返回檢索位置,沒找到-1
? ?concat(連接的一個或者多個字符串);
? ? ? ?var a = 'abcdefg';
? ? ? ?a.concat('hijklmn');
? ? ? ?console.log(a); //abcdefg,返回新串,不修改原來的喲
? ?charAt(索引位置);返回對應(yīng)字符
? ? ? ?'abcd'.charAt(200); //'' 找不到返回空字符串
? ?charCodeAt(索引位置);返回對應(yīng)字符Unicode 編碼
? ? ? ?'abcd'.charCodeAt(200); //NaN 找不到NaN
Date
? ?var ?data = new Date();
? ?http://blog.csdn.net/hudashi/article/details/7069600? ??//關(guān)于GMT UTC的介紹
?
GMT就是格林尼治標準時間,它是Greenwich mean time的簡稱。?
UTC則是協(xié)調(diào)世界時間,它是coordinated universal time的時間。它是一種更精確的GMT。?
? ?getDate() 從 Date 對象返回一個月中的某一天 (1 ~ 31)。
? ?getDay() 從 Date 對象返回一周中的某一天 (0 ~ 6)。
? ?getMonth() 從 Date 對象返回月份 (0 ~ 11)。
? ?getFullYear() 從 Date 對象以四位數(shù)字返回年份。
? ?getHours() 返回 Date 對象的小時 (0 ~ 23)。
? ?getMinutes() 返回 Date 對象的分鐘 (0 ~ 59)。
? ?getSeconds() 返回 Date 對象的秒數(shù) (0 ~ 59)。
? ?getMilliseconds() 返回 Date 對象的毫秒(0 ~ 999)。
? ?getTime() 返回 1970 年 1 月 1 日至今的毫秒數(shù)。
RegExp
? ??var r = new RegExp("aaa","img");? <==> var r = /aaa/img;
? ?exec(待檢驗的字符)
? ? ? ?/c/img.exec('abcdefgc'); ?//['c']
? ? ? ?new RegExp("c","img").exec('abcdedgc');?//['c']
? ?test(待檢驗的字符);
? ?? ?var a='abcd';
? ?? ?var r = new RegExp('c','img');
? ?? ?var r2 = /c/img;
? ?? ?console.log( r.test(a) ); ?//true
? ?? ?console.log( r2.test(a) ); //true
Error
? ??EvalError: 錯誤發(fā)生在eval()中
? ??SyntaxError: 語法錯誤,錯誤發(fā)生在eval()中,因為其它點發(fā)生SyntaxError會無法通過解釋器
? ??RangeError: 數(shù)值超出范圍
? ??ReferenceError: 引用不可用
? ??TypeError: 變量類型不是預(yù)期的
? ??URIError: 錯誤發(fā)生在encodeURI()或decodeURI()
? ??throw new Error(0,”Error Demo”);
? ??throw({name:'name',message:'message'});
Function
? ??apply(那個指定的對象, 參數(shù)數(shù)組)
? ? ? ? var a = {0:'bbb',1:'ccc',length:2};
? ??? ??[].slice.apply(a); ?//["bbb", "ccc"]
? ??call(那個指定的對象, 參數(shù)1,參數(shù)2,....無限.....);
? ??? ??var a = {0:'bbb',1:'ccc',length:2};
? ??? ??[].slice.call(a); ?//["bbb", "ccc"]
? ? ? ? //下面是易懂的小例子
? ? ? ??function a(param1,param2){
? ? ? ??? ? ? ??this.b = param1;
? ? ? ??? ? ? ??this.c = param2;
? ? ? ??}
? ? ? ??var obj = {};
? ? ? ??var t1 = a.apply(obj,['bbb1','ccc1']);
? ? ? ??console.log(obj);
? ? ? ??var t2 = a.call(obj,'bbb2','ccc2');
? ? ? ??console.log(obj);
?
? ??arguments.callee; ?//性能不好,不推薦使用
? ??? ??function a(num){
? ??? ??? ??if(num){
? ??? ??? ??? ??console.log(arguments.callee()+" come in");
? ??? ??? ??}else{
? ??? ??? ??? ??return "tm";
? ??? ??? ??}
? ??? ??}
? ??? ??a(3); ?//tm come in
? ? 閉包
? ??function a(){
? ??? ??var v = 'vvv';
? ??? ??function f(){
? ??? ??? ??return v;
? ??? ??}
? ??? ??return f();
? ??}
? ??console.log( a() ); //vvv
Array
? ??delete
? ? ? ?var a =[1,2,3]; delete a[1]; a; //[1, undefined × 1, 3]
? ??pop(); //刪除尾部元素,并返回刪除元素, 沒刪掉返回undefined
? ? ? ?var a = []; a.pop(); a; //[];
? ??push();添加尾部一個或更多元素,并返回length,
? ??shift();?用于把數(shù)組的第一個元素從其中刪除,并返回第一個元素的值。
? ? ? ?var a = []; a.shift(); //undefined;
? ??unshift();數(shù)添加開頭一個或更多元素,并返回length
? ??reverse();?顛數(shù)組中元素的順序,改變原數(shù)組嗎?
? ??sort(); 排序,改變原數(shù)組嗎?
? ? ? ?[1,3,2,6,5,4].sort(); //[1, 2, 3, 4, 5, 6]
? ? ? ?['1','3','2','11','12'].sort(); //["1", "11", "12", "2", "3"];
? ? ? ?['1','3','2','11','12'].sort(function(a,b){return a-b}); //["1", "2", "3", "11", "12"]
? ??concat();?連接兩個或更多的數(shù)組,并返回新數(shù)組,改變原數(shù)組嗎?
? ? ? ?var a = [1,2,3]; b=[4,5,6]; a.concat(b); a;
? ? ? ?var a = [1,2,3]; b=[4,5,6]; var c = a.concat(b,b,b); c;
? ??join();?把數(shù)組的所有元素放入一個字符串。元素通過指定的分隔符進行分隔。
? ??slice(開始位置,結(jié)束位置);?從某個已有的數(shù)組返回選定的元素
? ? ? ?var a = [1,2,3]; ?var b= a.slice(); console.log(b);
? ??splice(刪除位置,刪除數(shù)量,替換的新項目可以多個);?返回值是刪除的元素數(shù)組,?!!!重點方法, 增/刪/改 全活.!!!!?改變原數(shù)組嗎?
? ? ? ??//增
? ? ? ??var a = [4,5,6]; a.splice(2,0,'x'); ?a; ?//在刪除位置的前面新增
? ? ? ??//刪
? ? ? ??var a = [4,5,6]; a.splice(2,1); a;
? ? ? ? //改
? ? ? ??var a = [4,5,6]; a.splice(2,1,'x'); a;
Object
? ?//所有的對象都繼承于object.prototype
? ? typeof null === 'object'? //true
? ??hasOwnProperty(); //判斷屬性是否是當(dāng)前對象? ??
? ??var a = {b:'bbb',c:'ccc'};
? ??var b = function(){
? ??? ??this.d='ddd';
? ??};
? ??b.prototype = a;
? ??var bb = new b();
? ??console.log( bb.hasOwnProperty('b') ); //false
? ??console.log( bb.hasOwnProperty('d') ); //true
? ??for(var i in bb){
? ??? ??if( bb.hasOwnProperty(i)){
? ??? ??? ??console.log(i);
? ??? ??}
? ??}
? ??isPrototypeOf(); ?判斷實例是否在某原型鏈上
? ? ? ?var s = 'dd'; String.prototype.isPrototypeOf(s); ? ? ? ? //false
? ? ? ?var s = new String('dd'); String.isPrototypeOf(s); ? ? ?//false
? ? ? ?var s = new String('dd'); String.prototype.isPrototypeOf(s); ? ? ?//true
? ? ??
? ??propertyIsEnumerable(); //是否可枚舉(for in)
? ? ? ?Object.propertyIsEnumerable('toString'); ? ? //false
? ? ? ?Object.propertyIsEnumerable('__proto__'); //false
? ? ? ?({a:'a'}).propertyIsEnumerable('a'); ?//true;
? ??toLocaleString();
? ? ? ??new Date().toLocaleString(); ?//"2015/5/7 下午12:16:24"
? ??toString();
? ? ? ??function a(){}; a.toString(); //"function a(){}"
? ??valueOf();
? ? ? ??new Number(2).valueOf() === 2 //true
//------------------------------------------------------------------------------------
全局方法
Math
? ? ??http://www.w3school.com.cn/jsref/jsref_obj_math.asp
? ? ??abs(x) 返回數(shù)的絕對值。
? ? ??acos(x) 返回數(shù)的反余弦值。
? ? ??asin(x) 返回數(shù)的反正弦值。
? ? ??atan(x) 以介于 -PI/2 與 PI/2 弧度之間的數(shù)值來返回 x 的反正切值。
? ? ??atan2(y,x) 返回從 x 軸到點 (x,y) 的角度(介于 -PI/2 與 PI/2 弧度之間)。
? ? ??ceil(x) 對數(shù)進行上舍入。
? ? ??cos(x) 返回數(shù)的余弦。
? ? ??exp(x) 返回 e 的指數(shù)。
? ? ??floor(x) 對數(shù)進行下舍入。
? ? ??log(x) 返回數(shù)的自然對數(shù)(底為e)。
? ? ??max(x,y) 返回 x 和 y 中的最高值。
? ? ??min(x,y) 返回 x 和 y 中的最低值。
? ? ??pow(x,y) 返回 x 的 y 次冪。
? ? ??random() 返回 0 ~ 1 之間的隨機數(shù)。
? ? ??round(x) 把數(shù)四舍五入為最接近的整數(shù)。
? ? ??sin(x) 返回數(shù)的正弦。
? ? ??sqrt(x) 返回數(shù)的平方根。
? ? ??tan(x) 返回角的正切。
? ? ??toSource() 返回該對象的源代碼。
? ? ??valueOf() 返回 Math 對象的原始值。
//打印window
?
decodeURI
decodeURIComponent
encodeURI
encodeURIComponent
eval
isFinite
isNaN
parseInt
parseFloat
轉(zhuǎn)載于:https://www.cnblogs.com/tm-roamer/p/4540458.html
總結(jié)
以上是生活随笔為你收集整理的javascript基础(第二天)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: node-webkit File Di
- 下一篇: Python快速入门(1)