javascript 基础篇2 数据类型,语句,函数_基础知识

写内容之前废话一句:因为旧版有些浏览器不支持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="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节点下:

复制代码 代码如下:

<script type="text/javascript">
var a;
var b=new String("");
if(null) document.write("null");
if(0) document.write("0");
if(a) document.write("a undefined");
if(false) document.write("false");
if("") document.write("empty string");
if(b) document.write("new String()");
document.write("<br/>");
</script>

然后保存,刷新main页面:

哎呀( ⊙ o ⊙ ),果然只有new string出现了~。

swith语句也试试好了:

复制代码 代码如下:

<script type="text/javascript">
var date=new Date();
var day=date.getDay();
document.write(day+"<br/>")
switch(day){
case 6,7: document.write("weekend \(^o^)/");
break;
case 5: document.write("hold on~! last day!");
break;
default: document.write("work days.");
}
document.write("<br/>");
</script>

查看输出:

OK,接下来是循环语句:while do-while for-in for
前两个唯一的差别就是循环和判断的顺序不同,do-while比while多循环一次,我就不举例了。
for循环相信大家也熟的不能再熟了,我们就看for-in这一句。
这个其实是针对数组的,js中数组的初始化也挺奇特的比如我们在script结点里写:(另外注意下数组的初始化,用的是中括号)

复制代码 代码如下:

<script type="text/javascript">
<!--
document.write("test<br/>");
var a=[3,4,5,7];
for(var test in a){
document.write(test+": "+a[test]+"<br/>");
}
-->
</script>

我们查看输出:


从这个结果里我们探讨出一下几点:
其中test其实算是一个int的数字,来表示数组的数标。
for-in每次循环只能走一个数,一般用来穷举。
某些情况下,只能用for-in来穷举,比如数组里存储的内容有string,有数字。
(当然,如果硬要说的话,也不是只能用for-in,但是for-in要方便许多)
函数其实第一篇简单说过了。
1. 函数名前不需要返回值,参数列表里不需要写类型。
2. 函数内部定义的变量为局部变量,不可以在外面调用。
所以格式基本就是这样:
function 函数名(参数列表){
xxxxxxx;
[return xxxx;] //可有可无
}
OK了,知道了格式,我们来尝试一下:

复制代码 代码如下:

<script type="text/javascript">
<!--
function add(a,b){
var c=a+b;
return c;
}
var x=20, y=45;
document.write(add(x,y));
document.write("<br/>"+c);
-->
</script>

输出只有数字哦亲,也就是说,第二行那个直接忽略(真悲剧啊),连undefined的标准都达不到。因为它是局部变量。在函数执行完之后就被抛弃了。

除了这种规范的写法之外,还有一种叛逆的,就是,定义函数的时候没有写参数,但是函数体里也可以用参数,这样,当有参数的时候,可以有输出,此时因为使用的参数没有名字,就全存放在arguments数组里。举个例子:

复制代码 代码如下:

<script LANGUAGE="JavaScript">
<!--
function show(){
for(var temp in arguments)
document.write(arguments[temp]+"");
}
show(3,4,"Dumpling",4.67);
-->
</script>

PS:我把script结点里面的属性换了一下,其实就是说也可以这么声明javascript。LANGUAGE必须大写

看输出:

注意,这里面,经测试function内,用arguments里存储的数据做运算也是可以的,比如

复制代码 代码如下:

<script LANGUAGE="JavaScript">
<!--
function add(){
return arguments[0]+arguments[1];
}
document.write(add(4,44)+"");
document.write(add(4,"e55"));
-->
</script>

会输出48 4e55。当然,因为函数体中用到了两个参数,所以如果你调用时只给了一个参数,出来的结果并不是只输出一个值的,有兴趣自己测试下~如果你调用时给了3个参数,那么第三个参数就无情的被忽略了。
除了上面这种还算规整的定义外,还有一些别的方式来定义函数,比较非主流,我不喜欢用,不过还是要写出来了解下:
一种是:var add=new Function("参数","参数",......,"函数体");

复制代码 代码如下:

<script LANGUAGE="JavaScript">
<!--
var add = new Function("a","b","var c; c=a+b; return c");
document.write(add(4,87));
-->
</script>

输出是正确无误的,可以看到,最后一句不需要加分号,木有问题,这里的道理就是,Function其实是个类,然后add就变成了函数的名字了。
还有一种写法:

复制代码 代码如下:

<script LANGUAGE="JavaScript">
<!--
var show=function(name){
document.write("<br/>"+"Hellp "+name);
}
show("Dumpling");
-->
</script>

输出大家都懂的。。这个写法其实就是把函数名字写到前面来了而已。
既然证明了函数其实是一个object,那么当然它也有一些功能函数可以调用,比如toString()或者valueOf()函数可以打出完整,length可以返回函数的参数个数。
让我们试一下:

复制代码 代码如下:

<script LANGUAGE="JavaScript">
<!--
var show=function(name){
document.write("Hello "+name);
}
show("Dumpling");
document.write("<br/>"+show.valueOf());
document.write("<br/> number of arguments: "+show.length);
-->
</script>

输出:
Hello Dumpling
function (name){ document.write("Hello "+name); }
number of arguments: 1
OK 第二篇就到这里吧~明天继续 (/^o^)/

时间: 2024-10-26 08:14:05

javascript 基础篇2 数据类型,语句,函数_基础知识的相关文章

深入理解Javascript中的自执行匿名函数_基础知识

格式: (function(){ //代码 })(); 解释:这是相当优雅的代码(如果你首次看见可能会一头雾水:)),包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数. 来个带参数的例子: (function(arg){ alert(arg+100); })(20); // 这个例子返回120. 回来看看jquery的插件编写 (function($) { // Code goes here })(jQuery

javascript 进阶篇2 CSS XML学习_基础知识

CSS全称是cascading style sheets,中文名字叫级联样式单,也叫层叠样式表.它的好处就是能让代码整齐,并且可以批量处理一些样式. 基本语法: 注释符:/* */ 选择符:selector {attribute:value} 同一个属性的值用空格符号隔开,不同属性用分号隔开. 区分大小写. 比如要给页面中的table定制样式,则写table {.....;.....;} 选择符的使用方法有很多种,于是我又一次懒得打,从网上抄来的: 选择符模式 说明 * 匹配任意元素.(通用选择

实例:用 JavaScript 来操作字符串(一些字符串函数)_基础知识

操作字符串的值是一般的开发人员必须面临的家常便饭.操作字符串的具体方式有很多,比如说从一个字符串是提取出一部分内容来,或者确定一个字符串是否包含一个特定的字符.下面的 JavaScript 函数为开发人员提供了他们所需要的所有功能: • concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串. • indexOf() – 返回字符串中一个子串第一处出现的索引.如果没有匹配项,返回 -1 . • charAT() – 返回指定位置的字符. • lastIndexOf() – 返回

Javascript中的数据类型之旅_基础知识

虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number.String.Boolean.Object.Udefined.Null.其中,Object属于复杂数据类型,Object   由无序的键值对组成.其余几种都属于简单数据类型.注意:变量类型首字母大写,而变量值首字母是小写的. JavaScript不支持自定义类型,所以JavaScript中的所有值都属于这六种类型之一. 根据ECMAScript 5.1的规范,javascript中共有六种数据类型,分别为

深入理解JavaScript 函数_基础知识

方法&函数 区别 1.function 是更通用的概念,如数学.编程 2.method 是面向对象中的概念,一般与类或对象成对出现 关系 1.对象的属性可以是任意类型 2.对象的属性如果是函数类型,它就叫做这个对象的方法 3.所以方法的本质还是函数 函数的调用 1.fun() 2.obj.fun() 3.fun.call() 函数的属性和方法 1.name 2.length 3.toString 作用域 变量不是哪里都可以使用 全局变量(跨文件) var n = 1; function fn()

深入理解JavaScript中的箭头函数_基础知识

从一开始箭头就是 JavaScript 的一部分,在第一个 JavaScript 中就建议将内联的脚本代码包裹在 HTML 的注释中,这可以防止那些不支持 JavaScript 的浏览器错误滴将你的代码显示为明文.你也许写过下面这样的代码: <script language="javascript"> <!-- document.bgColor = "brown"; // red // --> </script> <scri

深入理解JavaScript内置函数_基础知识

javascript函数一共可分为五类: · 常规函数 · 数组函数 · 日期函数 · 数学函数 · 字符串函数 1.常规函数 javascript常规函数包括以下9个函数: (1)alert函数:显示一个警告对话框,包括一个OK按钮. (2)confirm函数:显示一个确认对话框,包括OK.Cancel按钮. (3)escape函数:将字符转换成Unicode码. (4)eval函数:计算表达式的结果. (5)isNaN函数:测试是(true)否(false)不是一个数字. (6)parseF

Javascript核心读书有感之词法结构_基础知识

编程语言的词法结构是一套基础性的规则,用来描述你如何编写这门语言.作为语法的基础,它规定了变量名是怎么样的,如何写注释,以及语句之间是如何区分的.本节用很短的篇幅来介绍javascript的词法结构. 1.字符集 javascript程序是用Unicode字符集编写的,Unicode是ASCII和Latin-1的超集,并支持地区上几乎所有的语言.ECMAscript3要求javascript的实现必须支持Unicode2,1及后续版本,ECMAscript5则要求支持Unicode3及后续版本

JavaScript中的Object对象学习教程_基础知识

参数:(1)obj 必需.Object 对象分配到的变量名称.  (2)值 可选.任一 JavaScript 基元数据类型(数字.布尔值或字符串).  如果值是一个对象,则返回的对象是未修改的.  如果值是 null."未定义"或"未提供",则创建无内容的对象.  Object对象的方法 Object作为构造函数使用时,可以接受一个参数.如果该参数是一个对象,则直接返回这个对象:如果是一个原始类型的值,则返回该值对应的包装对象.利用这一点,可以写一个判断变量是否为对

深入解析JavaScript中的数字对象与字符串对象_基础知识

JavaScript Number 对象JavaScript 只有一种数字类型. 可以使用也可以不使用小数点来书写数字.JavaScript 数字 JavaScript 数字可以使用也可以不使用小数点来书写: 实例 var pi=3.14; // 使用小数点 var x=34; // 不使用小数点 极大或极小的数字可通过科学(指数)计数法来写: 实例 var y=123e5; // 12300000 var z=123e-5; // 0.00123 所有 JavaScript 数字均为 64 位