成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

在JavaScript中玩變量類型強行轉換

2010-08-28 10:48:35來源:西部e網作者:

    我們在C/C++和C#這類強類型語言中,強行轉換變量類型簡直就是家常便飯。可是JavaScript這個動態類型腳本語言的變量號稱是沒有類型的,那么我們怎么轉換它的變量的類型呢?而且還要強行轉換。

    JavaScript的變量確實是沒有類型的,就是說你var variable后,可以隨便的給variable賦值,不會有任何問題。可是賦給變量的值本身自己卻是有類型的,比如:String、Object、Boolean和Number等等。所以JS的變量還是有類型轉換的,當然很多時候JS解析引擎會默認處理很多的type convert。不過有的時候也需要我們強行轉換數據類型,最常見的就是:''+數字+數字,這種情況來生成字符串累加。

    象:''+數字+數字,這樣的語法真的是比較的ugly,想我們在C中使用(int)xxx和C++中int(xxx)來做類型轉換多么的清晰明了。其實JavaScript也支持這樣的類型轉換語法的,例如:

    <script language="javascript">
    
var str = '100';
    
var num = Number(100);
    alert(
typeof(num) + ': ' + num);
    
var obj = Object(str);
    alert(
typeof(obj) + ': ' + obj);
    
var bool = Boolean(str);
    alert(
typeof(bool) + ': ' + bool);

    
var num = 100;
    
var str = String(num);
    alert(
typeof(str) + ': ' + str);
    
var bool = Boolean(num);
    alert(
typeof(bool) + ': ' + bool);
    
var obj = Object(num);
    alert(
typeof(obj) + ': ' + obj);

    
var bool = true;
    
var str = String(bool);
    alert(
typeof(str) + ': ' + str);
    
var num = Number(bool);
    alert(
typeof(num) + ': ' + num);
    
var obj = Object(bool);
    alert(
typeof(obj) + ': ' + obj);

    
var obj = {};
    
var str = String(obj);
    alert(
typeof(str) + ': ' + str);
    
var num = Number(obj);
    alert(
typeof(num) + ': ' + num);
    
var bool = Boolean(obj);
    alert(
typeof(bool) + ': ' + bool);
    
</script>

    除了Number(obj)轉換失敗,其它強行轉換表達式都能取得有意義的轉換效果。

    使用強行轉換表達式最大的好處就是可以使程序代碼變得清晰,為本身就類型混亂的JavaScript編程減少混淆的可能。

    至少我覺得類似:var str = String(3) + String(3); 比 var str = '' + 3 + 3; 表意更清晰。
    還有默認轉換比較混亂的地方,比如:"88"-8和"88"+8,前者的默認轉換是把字符串轉為數字(結果80),而后者又是把數字轉為字符串(結果"888")@_@,真是亂。所以使用變量類型強制轉換,就可能避免這類默認轉換帶來的潛在理解出錯的問題。

原文地址:http://birdshome.cnblogs.com/archive/2005/02/23/107751.aspx

關鍵詞:在JavaScript

贊助商鏈接:

主站蜘蛛池模板: 无为县| 新乡市| 锡林郭勒盟| 原阳县| 朝阳区| 竹北市| 外汇| 安顺市| 大埔县| 成安县| 舞钢市| 宣城市| 襄樊市| 辽阳市| 绥化市| 荆州市| 双桥区| 姚安县| 达州市| 北流市| 吴川市| 连城县| 墨玉县| 灯塔市| 葵青区| 庆城县| 尤溪县| 凉山| 缙云县| 县级市| 上虞市| 镇坪县| 连州市| 府谷县| 忻州市| 满城县| 呼玛县| 巍山| 务川| 石渠县| 十堰市|