js 一个小问题

开头

之前被人问了一个问题

就是

<script language = "JavaScript"

<script type="text/javascript"

有什么区别。 当时就被震住了。 尼玛这还有区别

查了查

http://www.w3school.com.cn/tags/att_script_type.asp

http://www.w3help.org/zh-cn/causes/BG9002

特别是第二个 详细的指出的浏览器支持问题

解决方案

为了保证脚本程序可以正常执行,除非特意使用仅 IE 支持的 VBScript 和 Script Encoder 机制外,应当将 SCRIPT 标记的 "type" 属性设置为 "javascript"
并且不要设置已经废弃的 "Languange" 属性。


go on

<script language="javascript">
function a() {
b
= "a";
}
a();
alert(b);
 
</script>

其实关于 变量有一个问题

即使你在 函数内 如同上面那样声明变量。 他就会变成全局变量

 

但是 如果用var 申明就会有一个问题

<script language="javascript">
function a() {
var b = "a";
delete b;
alert(b);
}
a();
</script>

他依然会 弹出a。

如果用var 声明 delete 就会无效。

 

矮油另一个问题

 var a= "1"; 
        function func() {
            alert(a); 
            var a= "2";
            alert(a);
        }
 func();

 然后你会发现 第一次alert(a); 弹出来的是 undefined 第二次 会弹出2

1  var a= "1"; 
2 function func() {
3 alert(a);
6 }
7 func();

这样就会显示 1~

 

为嘛会这样呢=。=

其实第一段代码 等同于

 var a= "1"; 
function func() {
var a;
alert(a); //所以 相当于重新定义了a 自然是undefined
a= "2";
alert(a);
}
func();

 

小东西。

 <script language="javascript">
var i, j;
i
= 0;
j
= "0";
alert(i
=== j);
</script>

=== 恒等于 ==等于

同上面 如果是=== 返回false  ==相反

 

避免隐式类型转换

其实这东西以前在js 中都不是很 关注。 毕竟页面中的 js应用不多

一点点的效率损失 无伤大雅。 现在想来 呵呵呵呵呵。。

var a = 11, b = '22';
var c = a + b;
1 var a = 11, b = '5';
2 var c = a - b;
3 c 是数字类型



 





 



posted @ 2012-04-27 22:36  CallMeTommy  阅读(147)  评论(0编辑  收藏  举报