写内容之前废话一句:因为旧版有些浏览器不支持javascript脚本,遇到script结点,当做普通内容输出了,所以有时候为了让版本兼容,会在script结点里的内容写上注释符号,这样的话在旧版里虽然程序会失效,但是不会出现我们的代码,类似于这样(请忽略括号以及括号里的东西):
复制代码 代码如下:
<script type="text/javascript">
<!-- (注意,这里必须换行)
xxxxxx;
--> (这一行也不可以写东西。)
</script>
注意: 经过测试发现,js语句不可以跟注释符号写在同一行,不然的话就在新版的浏览器里也会失效。
javascript 的数据类型:
数值类型:包括所有的数字。
字符串类型 string 用“” 或‘'括起来表示
布尔类型 boolean =true 或 false。
变量:用来存储数据的容器,在程序里存储的数值时可以变化的。
变量的声明: var 变量名[= 值];
如果变量在函数内部声明,那么它是局部的,如果在函数外,那就是全局的,意思你们懂的。
也就是说,不管声明哪种类型的变量,都是用var, 具体是哪一种数据类型,则是在初始化之后确定的。如果没有初始化的话,那么它就是个未定义类型的变量。
我们就利用上篇js里提到的小工程来玩儿一下它的数值类型好了。
在main.html里写入:
复制代码 代码如下:
<html>
<head>
<title>O.O</title>
<script type="text/javascript" src="https://www.jb51.net/js/output.js"></script>
<script type="text/javascript">
var a=456;
var b="Hello~";
var c=true;
var d;
document.write(a+""+ typeof a+"<br/>");
document.write(b+""+ typeof b+"<br/>");
document.write(c+""+ typeof c+"<br/>");
document.write(d+""+ typeof d+"<br/>");
</script>
</head>
<body>
This is my JSP page. <br/>
</body>
</html>
然后我们看输出: 可以看到,赋值以后,var都有了自己的类型,但是没有定义的var d,就是未定义的。
这里我们可以看到,typeof这个保留字,可以返回基本数据类型的名称,除了这三种之外,还可以返回object的类型。
但是如果是特殊类型,就需要instanceof 来返回类型名称了。
比如如果定义一个 var obj=new Object(); 或者var date=new Date(); 使用typeof来返回它的类型( typeof obj ),输出的是 object
数据类型的转换:
从String转换为int/float使用函数: parseInt(String) / parseFloat(String) 例如:parseFloat("3.14159");
从数字类型转换为string,使用 toString()函数:比如:
var iNum=30; 30.toString(2);// 后面的括号里加个2,意思是转换为二进制字符串。
//同样还可以有8进制和十六进制,如果没有数字,那就是直接转换了。
接下来就是做个小实验了,把刚才那个文件里script结点下的内容换换:
复制代码 代码如下:
<script type="text/javascript">
var a=456;
var b="789";
var c=a.toString()
var d=parseInt(b);
document.write(a+""+ typeof a+"<br/>");
document.write(c+""+ typeof c+"<br/>");
document.write(b+""+ typeof b+"<br/>");
document.write(d+""+ typeof d+"<br/>");
</script>
然后,运行一下吧~
看起来,转换类型其实很简单的嘛~运算:
运算其实跟c java都一样,都是加减乘数啊and啊,or啊的,其实没什么差别。
这里就重申明一次i++和++i的差别吧。
i++是执行一次i+1,但是返回i,比如我写一句
复制代码 代码如下:
var i=50;
if(i++<=50)
document.write(i);
那么运行时的顺序其实是:赋值:i=50, 判断:if(i<=50), 执行i=i+1 ,执行判断后的语句:xxxx。所以最后输出的是51,我就不截图了。
如果那里使用的是++i,那么返回的是加1后的值,也就是说不会有输出了。
--------------------------------------------------------------------------------
语句部分
条件语句:if 和 switch
其实和c是一样的,这部分并不需要多讲,就是条件语句中也要注意一点小细节:
js的if语句中,在下列情况下返回为false: null \ undefined \ 空字符串"" \ 0 \ false
关于空字符串还要注意下:var s=""和 var s=new String("")是不一样的,后者开辟了内存空间,所以返回true。
下面我们来验证一下吧~,javascript节点下:
复制代码 代码如下: