淺析JavaScript中的常用算法與函數(shù)
代碼使用方法:
0001:
判斷一個計算結(jié)果是不是無窮大:if(isFinite(999999999*999999999) == true)
----------------------------------------------------------------------------------------------------
0002:
判斷是不是數(shù)字:if(isNaN("Blue") == true),不是數(shù)字則為true,是數(shù)字則為false。
----------------------------------------------------------------------------------------------------
0003:
數(shù)字的進制轉(zhuǎn)換:
var num = 10;
alert(num.toString()) + "<br>";//十進制
alert(num.toString(2)) + "<br>";//二進制
alert(num.toString(8)) + "<br>";//八進制
alert(num.toString(16)) + "<br>";//十六進制
----------------------------------------------------------------------------------------------------
0004:
將字符串類型轉(zhuǎn)換為數(shù)字類型:注意,parseFloat沒有進制參數(shù)可以選擇,都當(dāng)作十進制處理
var str = "10";
alert(parseInt(str,10));//字符串被當(dāng)作十進制處理
alert(parseInt(str,2));//字符串被當(dāng)作二進制處理
----------------------------------------------------------------------------------------------------
0005:
強制類型轉(zhuǎn)換:
var str = "10";
var num = new Number(str);
----------------------------------------------------------------------------------------------------
0006:
Object類的基本屬性和方法:所有類都繼承自O(shè)bject,因此都有這些屬性和方法。
屬性:
●Constructor:對創(chuàng)建對象的函數(shù)的引用。指向構(gòu)造函數(shù)。
●Prototype:對該對象的對象原型的引用。
方法:
●HasOwnProperty(property):判斷對象是不是有某個屬性。
●IsPrototypeOf(aobject):判斷該對象是不是另一個對象的原型。
●PrototypeIsEnumerable(protype):判斷屬性是否可以用for...in語句枚舉。
●ToString()
●ValueOf()
----------------------------------------------------------------------------------------------------
0007:
聲明數(shù)組的幾種方法:
var array1 = new Array();
var array2 = new Array("Blue","Red","Black");
var array3 = ["Blue","Red","Black"];
----------------------------------------------------------------------------------------------------
0008:
創(chuàng)建日期類型的方法:var myDate = new Date(Date.parse("2007/1/2"));
----------------------------------------------------------------------------------------------------
0009:
URL的編碼和解碼:
var url = new String("http://www.qpsh.com?name=smartkernel");
//編碼:將非標(biāo)準(zhǔn)字符全部編碼
var enUrl = encodeURIComponent(url);//encodeURI(url);
//解碼:轉(zhuǎn)換為原始形式
var deUrl = decodeURIComponent(enUrl);//decodeURI(enUrl);
----------------------------------------------------------------------------------------------------
0010:
ASP.Net中的編碼和解碼:
string url = "http://www.126.com?name=smartkernel";
string enUrl = this.Server.HtmlEncode(url);
string deUrl = this.Server.HtmlDecode(enUrl);
----------------------------------------------------------------------------------------------------
0011:
靜態(tài)方法:JavaScript的靜態(tài)函數(shù),就是聲明給構(gòu)造函數(shù)的函數(shù)
function Person()
{
}
Person.say = function(msg)
{
alert(msg);
}
Person.say("你好");
0012:
創(chuàng)建一個對象:
function Person(name,age)
{
Person.prototype.Name = name;
Person.prototype.Age = age;
//this.Name = name;
//this.Age = age;
}
Person.prototype.say = function()
{
alert(this.Name + "|" + this.Age);
}
var aPerson = new Person("張三",23);
aPerson.say();
0013:
StringBuilder的創(chuàng)建:
function StringBuilder()
{
this.arrayData = new Array();
}
StringBuilder.prototype.append = function(str)
{
this.arrayData.push(str);
}
StringBuilder.prototype.toString = function()
{
return this.arrayData.join("");
}
var aStringBuilder = new StringBuilder();
aStringBuilder.append("世界");
aStringBuilder.append("你好");
alert(aStringBuilder.toString());
0014:
繼承的實現(xiàn):
function Person(name)
{
this.Name = name;
this.sayName = function()
{
alert(this.Name);
}
}
function MyPerson(name,age)
{
this.ctorFun = Person;
this.ctorFun(name);
delete this.ctorFun;
this.Age = age;
this.sayAge = function()
{
alert(this.Age);
}
this.say = function()
{
alert(this.Name + "|" + this.Age);
}
}
var aMyPerson = new MyPerson("張三",25);
aMyPerson.sayName();
aMyPerson.sayAge();
aMyPerson.say();
0015:
繼承的實現(xiàn):
function Person(name)
{
this.Name = name;
this.sayName = function()
{
alert(this.Name);
}
}
function MyPerson(name,age)
{
Person.call(this,name);//或者Person.apply(this,new Array(name));
this.Age = age;
this.sayAge = function()
{
alert(this.Age);
}
this.say = function()
{
alert(this.Name + "|" + this.Age);
}
}
var aMyPerson = new MyPerson("張三",25);
aMyPerson.sayName();
aMyPerson.sayAge();
aMyPerson.say();
0016:
多重繼承:
function Person1(name)
{
this.Name = name;
this.sayName = function()
{
alert(this.Name);
}
}
function Person2(sex)
{
this.Sex = sex;
this.saySex = function()
{
alert(this.sex);
}
}
function MyPerson(name,age,sex)
{
Person1.call(this,name);
Person2.call(this,sex);
this.Age = age;
this.sayAge = function()
{
alert(this.Age);
}
this.say = function()
{
alert(this.Name + "|" + this.Age + "|" + this.Sex);
}
}
var aMyPerson = new MyPerson("張三",25,"男");
aMyPerson.say();
0017:
繼承的實現(xiàn):原型鏈方式,不支持有參數(shù)的構(gòu)造函數(shù)和多重繼承
function Person()
{
}
function MyPerson()
{
}
MyPerson.prototype = new Person();//不能有參數(shù)
0018:
合理的繼承機制是混合使用以上的幾種方式:
function Person(name)
{
this.Name = name;
this.sayName = function()
{
alert(this.Name);
}
}
function MyPerson(name,age)
{
Person.call(this,name);//或者Person.apply(this,new Array(name));
this.Age = age;
this.sayAge = function()
{
alert(this.Age);
}
this.say = function()
{
alert(this.Name + "|" + this.Age);
}
}
MyPerson.prototype = new Person();
var aMyPerson = new MyPerson("張三",25);
aMyPerson.sayName();
aMyPerson.sayAge();
aMyPerson.say();
0019:
錯誤處理:
<head>
<script type="text/Javascript">
window.onerror = function(msg,url,line)
{
var err = "錯誤信息:" + msg + "。/n" + "錯誤地址:" + url + "。/n" + "錯誤行數(shù):" + line + "。/n";
alert(err);
}
</script>
相關(guān)文章
js字符串轉(zhuǎn)json對象的四種實現(xiàn)方法
使用ajax的開發(fā)項目過程中,經(jīng)常需要將json格式的字符串返回到前端,前端解析成js對象(JSON),下面這篇文章主要給大家介紹了關(guān)于js字符串轉(zhuǎn)json對象的四種實現(xiàn)方法,需要的朋友可以參考下2023-04-04使用JavaScript截取視頻特定幀的實現(xiàn)方法
在網(wǎng)頁開發(fā)中,我們經(jīng)常需要對媒體文件進行處理,其中包括視頻文件,有時候,我們可能需要從視頻中提取特定的幀,并將其顯示在網(wǎng)頁上,本文將介紹如何使用JavaScript來實現(xiàn)這一功能,感興趣的朋友跟著小編一起來看看吧2024-05-05解析JavaScript實現(xiàn)DDoS攻擊原理與保護措施
本文主要對JavaScript實現(xiàn)DDoS攻擊原理與保護措施進行介紹,具有一定的參考價值,需要的朋友一起來看下吧2016-12-12javascript使用eval或者new Function進行語法檢查
使用代碼來實現(xiàn)分析代碼的語法,這是一件極其痛苦的事情。簡單的解決辦法是:使用腳本引擎自己的語法檢查,比方說eval( ) 或者new Function( )。2010-10-10