1关于script标签属性,注意点,浏览器文档模式,各种数据类型的转化
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<!--script标签的属性:1.charset 2.defer 3.language 4.src 5.type
他里边的代码解释顺序是从上到下。
里边的代码内容不能含有script标签,因为会把它作为结束标志,解决办法是把它分拆。
引用的外部js文件的解析顺序也是从上到下,但是如果都把引用的外部js文件放在头处,如果碰到引用外部js文件多且大,
解决办法是把它们放在body元素中
或者在script的属性中设置defer="defer"。不过对于他只有火狐和IE支持这个属性。
在xhtml代码中,不要使用<号,因为会把它解析城其他的标志,解决方法是1.把<换为< 2.使用<![CDATA[js代码]]>
3.使用 //<![CDATA[js代码 //]]> 也可以
-->
<script type="text/jscript">
//<![CDATA[
function compare(a,b)
{
if(a < b)
{
alert("b比a大");
}
else{
alert("a比b大");
}
}
// ]]>
</script>
<!--尽量引用外部js的 原因:维护性强,可缓存,可适应未来-->
<!--文档类型:IE5是混杂模式,IE7是标准模式,IE8是超级标准模式,在IE8中可以用meta标签来关闭默认文档模式。
如<meta http-equiv="X-UA-Compatible" content="IE=7"/>,这样就可以使用IE7的呈现引擎来呈现页面-->
<input id="Button1" type="button" onclick="compare(1,2);" value="比较1和2的大小"/>
<!--定义变量的时候可以这样定义:var message= 'infoa',meesage1=1,message2=true;-->
<!--typeof的使用:他并不是一个函数,它只是一个操作符,但是可以用()如下:-->
<script type="text/jscript">
function testTypeOf() {
var message = "message", number1 = 95;
alert(typeof message);
alert(typeof (message));
alert(typeof number1);
}
</script>
<input id="Button2" type="button" value="检测类型" onclick="testTypeOf();" />
<!--未初始化的默认值未undefined,null类型是一个object,undefined派生自null @40-->
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<!--JS里是可以表示八进制,和十六进制的,八进制就是在前边加一个前导的零,如果后边的数超过了0到7,
那么前导的零会被忽略,当做10进制来解析 。 对于16进制,前边需要加0x表示16进制
-->
<!--NaN:用于返回本来要返回数值的操作数而未返回的操作数值得情况(这样就不会出错了),它和任何数值都不相等,包括和自己。如-->
<script type="text/jscript">
function change() {
if (NaN == NaN) {
alert(true);
}
else {
alert(false);
}
}
</script>
</head>
<body>
<input id="Button1" type="button" value="测试NaN" onclick="change();" />
<!--有三个数值转换函数:Number():用于任何数据类型,包括对象。parseInt和paseFloat:只用于把字符串转换为数值。
paseInt会忽略前导的空格,它也能识别各种格式的整数。如:
-->
<script type="text/javascript">
function testInt() {
var number1 = parseInt("0xAF", 16);
var numbser2 = parseInt("010", 8);
alert("0xAF转化为16进制为:" + number1);
alert("010转化为8进制为:"+numbser2);
}
</script>
<input id="Button2" type="button" value="parseInt测试" onclick="testInt();" />
<!--paseFloat:它始终会忽略前导的0,同时对于16进制的数它会转化为0如:-->
<script type="text/javascript">
function testParseFloat(a) {
alert(parseFloat(a));
alert("0xAF在paseFloat中为:" + parseFloat("0xAF"));
}
</script>
<input id="Button3" type="button" value="测试parseFloat" onclick="testParseFloat('010');" />
<!--数值,bool值,对象都有toString()方法。而null,undefine是没有toString()方法的,多数情况下,它并不需要参数。但是在需要把数字
类型的字符串转化为各种数据格式时候,可以传递参数 如:-->
<script type="text/javascript">
function testToString(number) {
alert("9转化为8进制:"+number.toString(8));
}
</script>
<input id="Button4" type="button" value="测试testToString" onclick="testToString(9);" />
<!--在不知道其值是否是null,undefine的情况下,可以使用String()方法。 如:-->
<script type="text/javascript">
function testString(a) {
alert(String(a));
}
</script>
<input id="Button5" type="button" value="测试String" onclick="testString(null);"/>
<!--对象其实就是一组数据和功能的组合。它有6个属性和方法。-->
<!--位操作符,关键是要知道底层对有符号的正数和负数做的转化。(补码),非(~),与(&),或(|),异或(^)
左移(<<),左移不会影响操作数的符号位。有符号的右移(>>),无符号的右移(>>>)。有符号的右移和无符号的右移对于
正数没有什么影响,但是对于负数差别就很大了。因为无符号右移是以0来填充空位,有符号右移是以符号位的值充空空位。如:
-->
<script type="text/javascript">
function testMoveRight(a){
var oldValue = a;
var newValue = a>>>5;
alert("-64的无符号右移后的值:" + newValue);
}
</script>
<input id="Button6" type="button" value="测试负数的无符号右移" onclick="testMoveRight(-64);" />
</body>
</html>