js 中的类型细节

function StranText(txt, toFT, chgTxt) {
alert(txt);
if (txt == "" || txt == null) return "";
toFT
= toFT == null ? BodyIsFt : toFT;
// if (toFT == 1) {
// alert(toFT);
// }
// else if (toFT == 0) {
// alert("N" + toFT);
// }
if (toFT==1) {
alert(toFT);
}
else {
alert(
"N" + toFT);
}
}
var BodyIsFt = 1;
var hell = document.getElementById("helloworld");
function change() {
if (BodyIsFt == 1) {
BodyIsFt
= "0";
}
else {
BodyIsFt
= "1";
}
alert(BodyIsFt);
}

最近有个问题一直没解决!
        今天抽时间学习了下,其实也就是一个小问题,关于js中的 真 假 的!
        js 是一个弱类型的语言,存在很多地方的类型转换! 所有类型都是通过 var 关键词定义的!
        但是,关于boolean 型,这个问题,或许之前,就知道,但是真的遇到问题的时候,却不知道的原因是什么,以至于要一步步alert!
        最后,才发现!
        原来在js 中if(0) 和if("0") 的结果不一样呀,前一个是false 后一个是true ! 这个时候 js 不会将string 转换成int 型的!
       
        至今明白,原来精通一门语言,真的很不容易呀!
        或许,当学了这么多的基础只是之后,入门一门新的语言,是很轻松的!但是要精通的话,谈何容易! 或许算法和数据结构大同小异,但是细节方面还是相差挺大的!
        如果不精通的话,只会花很长的时间在调试bug上,在寻找why 上面!

原文地址:https://www.cnblogs.com/neve/p/1996202.html