1..JavaScript语法
1.1.1. 区分大小写
与 Java 一样,变量、函数名、运算符以及其他一切东西都是区分大小写的。
比如:
变量 test 与变量 TEST 是不同的。
1.1.2. 注释
Java: // /* */ /** */
HTML: <!-- -->
CSS: /* */
JavaScript:
ECMAScript注释与 Java语言的注释相同
ECMAScript 借用了这些语言的注释语法。
有两种类型的注释:
单行注释以双斜杠开头(//)
多行注释以单斜杠和星号开头(/*),以星号和单斜杠结尾(*/)
1.1. 常用函数
window.alert() 或写为 alert() :显示一个提示框显示内容。
window.document.write() :在网页的当前位置处写内容。
1.2. 变量
变量是弱类型的
与 Java不同,ECMAScript 中的变量无特定的类型,定义变量时只用 var 运算符,可以将它初始化为任意值。
因此,可以随时改变变量所存数据的类型(尽量避免这样做)。
例子
var color = "red";
var num = 25;
var visible = true;
ECMAScript 中的变量是用 var 运算符(variable 的缩写)加变量名定义的。例如:
var test = "hi";
在这个例子中,声明了变量 test,并把它的值初始化为 "hi"(字符串)。
每个变量仅仅是一个用于保存值的占位符而已。定义变量时要使用var操作符(var是关键字),后跟变量名
var message;
这行代码定义了一个名为message的变量,该变量可以用来保存任何值,也可以直接初始化变量。
var message ="hi";
ECMAScript 中的变量无特定的类型,定义变量时只用 var 运算符,可以将它初始化为任意值。
<script type="text/javascript" > //定义变量 var color = "red"; var num = 25; var visible = true; </script> |
同时,可以随时改变变量所存数据的类型(尽量避免这样做)。
<script type="text/javascript" > //定义变量 var message = "hello"; message = 100; alert(message); </script> |
该案例中变量message一开始保存了一个字符串值"hi" 然后又被一个数值100取代。这在ECMAScript是有效的,但是不建议这样使用。
使用细节:
1、 var关键字在定义变量的时候可以省略不写
2、 变量名可以重复,后面的将覆盖前面的变量
3、 变量的类型取决于值的类型
一条语句定义多个变量。
中间使用豆号隔开即可,可初始化,也可以不初始化。
<script type="text/javascript" > var name = "jack", age = 28, gender = "男"; </script> |
JavaScript代码块及其代码块变量作用域
<script type="text/javascript" > //代码块 (Java)对代码进行封装 隔离变量的作用域 { var a = 100; document.write(a + "</br>"); } { document.write(a + "</br>"); //JavaScript不会隔离变量作用域 }
</script> |
1.3. 数据类型
1.3.1. typeof操作符
ECMASCRIPT 中有4种基本数据类型:
Undefined, Boolean,Number和String
Typeof
关键字typeof可以获取一个变量的类型。
<script type="text/javascript" > var a = 100; var b = 3.14; var c = true; var d = 'a'; var e = "hello"; var f; document.write(a + "<br/>"); document.write(b + "<br/>"); document.write(c + "<br/>"); document.write(d + "<br/>"); document.write(e + "<br/>"); document.write(f + "<br/>"); document.write("<hr/>"); document.write( typeof a + "<br/>"); document.write( typeof b + "<br/>"); document.write( typeof c + "<br/>"); document.write( typeof d + "<br/>"); document.write( typeof e + "<br/>"); document.write( typeof f + "<br/>"); </script> |
类型的总结:
所有的数值都是number类型
字符和字符串都是string类型
布尔是boolean类型
如果一个变量没有初始化值的时候,其类型为undefined类型。表示没有定义。
JavaScript中数值的表示形式:
<script type="text/javascript" > var a = 12; var b = 012; //八进制 10 var c = 0x12; //十六进制 18 document.write(a + "<br/>"); document.write(b + "<br/>"); document.write(c + "<br/>"); </script> |
使用细节:
1、八进制中如果数据超过0~7,默认解析为十进制数据。
<script type="text/javascript" > var a=09; //无效的八进制 document.write(a+"<br/>"); </script> |
浮点数:
要定义浮点值,必须包括小数点和小数点后的一位数字(例如,用 1.0 而不是 1)。这被看作浮点数字面量。例如:
<script type="text/javascript" > var a = 3.14;//浮点数 var b = 1.//合法,小数点后面没有数字,解析为1 var c = 10.0//整数,解析为10。 document.write(a + "<br/>"); document.write(b + "<br/>"); document.write(c + "<br/>"); </script> |
由于保存浮点数需要的内存空间是保存正数值的两倍,因此ECMAScrip会将浮点数值转换为整数值。如果小数点后没有跟任何数字和浮点数本身就是一个整数就会被转换为整数。
1.3.2 转换成数字
ECMAScript 提供了两种把非数字的原始值转换成数字的方法,即 parseInt() 和 parseFloat()。只有对 String 类型调用这些方法,它们才能正确运行;对其他类型返回的都是 NaN。
在判断字符串是否是数字值前,parseInt() 和 parseFloat() 都会仔细分析该字符串。
parseInt() 方法首先查看位置 0 处的字符,判断它是否是个有效数字;如果不是,该方法将返回 NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置 1 处的字符,进行同样的测试。这一过程将持续到发现非有效数字的字符为止,此时 parseInt() 将把该字符之前的字符串转换成数字。
例如,如果要把字符串 "12345red" 转换成整数,那么 parseInt() 将返回 12345,因为当它检查到字符 r 时,就会停止检测过程。
<script type="text/javascript" > var num = parseInt("1234abc"); document.write(num); //1234 </script> |
字符串中包含的数字字面量会被正确转换为数字,比如 "0xA" 会被正确转换为数字 10。不过,字符串 "22.5" 将被转换成 22,因为对于整数来说,小数点是无效字符。
<script type="text/javascript" > var num1 = parseInt("12345red"); //返回 12345 var num2 = parseInt("0xA"); //返回 10 var num3 = parseInt("56.9"); //返回 56 var num4 = parseInt("red"); //返回 NaN document.write(num1 + "<br/>"); document.write(num2 + "<br/>"); document.write(num3 + "<br/>"); document.write(num4 + "<br/>"); </script> |
<script type="text/javascript" > alert( parseFloat("123") ); // 可以 alert( parseFloat("123.53") ); // 可以 alert( parseFloat("012") ); // 12 alert( parseFloat("000012") ); // 12 alert( parseFloat("0x20") ); // 结果为0 alert( parseFloat("-59") ); // 负数 alert( parseFloat("abc123") ); // NaN (Not a Number),表示不是一个数字。 alert( parseFloat("123ab2c") ); // 结果是123,即会解析前面正确的数字,直到遇到不正确的数字。 </script> |
判断是否是一个有效的数值.
isNaN
isNaN( 表达式 ),返回的结果是否为NaN(非数值)
<script type="text/javascript" > document.write(isNaN("abc")+"<br/>"); //true document.write(isNaN("123")+"<br/>"); //false </script> |