所谓标识符,就是指变量、函数、属性的名字,或者函数的参数。标识符可以是按照下列格式规则 组合起来的一或多个字符: 第一个字符必须是一个字母、下划线(_)或一个美元符号($); 其他字符可以是字母、下划线、美元符号或数字。
注释
// 单行注释
var Ae = 32 ; //这行是注释识别器不解析,是解释代码所在的作用
/* 多行注释*/
var Ae = 32 ; /*
var Ab 321 ; 和上方的单行注释作用一样,只不过这是多行的,只要在/* */里面 的就算是注释内容
*/
分号
语句结尾的分号不是必需的,但我们建议任何时候都不要省略它。
变量
javascript 的变量不像c语言和Java或者其他语言一样,JavaScript变量是松散类型的。
定义变量格式 var 变量名(即一个标识符)
变量能用var
保存任何值
c语言定义变量
int i, j, k; //整形变量
char c, ch; //字符变量
float f, salary; //浮点变量
double d; //双精度浮点变量
JavaScript定义变量
var i = 4; //整形变量
var c = "xx" ; //字符变量
var f = 2.1 ; //浮点变量
var d = 2.22 ; //双精度浮点变量
var message
上面这段代码定义了名为message的变量,但是没有赋值(如 var i = 4;就是给i赋4的数值),如上没有赋值给message系统会自动给这个变量赋值一个Undefined的值
message = 43;
上面这段代码没有加var直接给message赋值,这种操作有效,使message变成了一个全局的变量
数据类型
分两种,一种基本数据类型
也叫简单数据类型;另一种是复杂数据类型
基本数据类型 Undefined,Null,Boolean,Number,String
复杂数据类型 Object
Undefined | Null | Boolean | Number | String |
---|---|---|---|---|
值未定义 | 表示一个空的对象指针 | 布尔值(turn;false) | 数值 | 字符串 |
Boolean() | Number();isNaN();parseInt();parseFloat() | toString() |
typeof操作符
用法: typeof(操作数) 如下
var message = "some string";
alert(typeof (message)); // "string" alert()函数是弹出警告框,可自行测试
Undefined值的变量和未定义的变量是不一样的,看下面的例子:
var message; // 这个变量声明之后默认取得了 undefined 值 相当于(var message = undefined;)
alert(message); // "undefined"
alert(age); // 产生错误 这个变量(age)并没有声明
Undefined是派生自null的 所以(null==undefined)对它们的相等性测试要返回 true;
可以对任何数据类型的值调用 Boolean()函数,而且总会返回一个 Boolean 值。至于返回的 这个值是 true 还是 false,取决于要转换值的数据类型及其实际值。下表给出了各种数据类型及其对 应的转换规则。
数据类型 | 转换为turn的值 | 转换为false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | ""(空字符串) |
Number | 任何非零数字值(包括无穷大) | 0和NaN |
Object | 任何对象 | null |
Undefined | n/a① | undefined |
需要注意的是,Boolean 类型的字面值 true 和 false 是区分大小写的。也就是说,True 和 False (以及其他的混合大小写形式)都不是 Boolean 值,只是标识符。
Number分整数和浮点类型(也称双精度浮点类型)
NaN,即非数值(Not a Number)是一个特殊的数值,这个数值(NaN)用于表示一个本来要返回数值的操作数未返回数值的情况
var num1 = Number("Hello world!"); //NaN 转换不了Hello word 字符串
isNaN()函数接受一个参数,用来测试这个参数是不是一个"数值",后返回一个Boolean值
任何不能被转换为数值的值都会导致这个函数返回 true。
alert(isNaN("10")); //false(可以被转换成数值 10)
alert(isNaN("blue")); //true(不能转换成数值)
toString()可以看做是把一个数据转换成了相应字符串的形式
valueOf(),它的作用是返回它相应的原始值
每个JavaScript固有对象的 valueOf 方法定义不同。
由于 Number()函数在转换字符串时比较复杂而且不够合理,因此在处理整数的时候更常用的是 parseInt()函数 (详细原因请去查Number转换规则)
用 parseInt()转换空字符串会返回 NaN(Number()对空字符返回 0)。
如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个非数字字符。
如,"1234blue"会被转换为 1234,因为"blue"会被完全忽略。类似地,"22.5"会被转换为 22,因为小数点并不是有效的数字字符。
为了更好地理解 parseInt()函数的转换规则,下面给出一些例子:
var num1 = parseInt("1234blue"); // 1234
var num2 = parseInt(""); // NaN
var num3 = parseInt("0xA"); // 10(十六进制数)
var num4 = parseInt(22.5); // 22
var num5 = parseInt("070"); // 56(八进制数)
var num6 = parseInt("70"); // 70(十进制数)
var num7 = parseInt("0xf"); // 15(十六进制数)
指定基数会影响到转换的输出结果。例如:
var num1 = parseInt("10", 2); //2 (按二进制解析)
var num2 = parseInt("10", 8); //8 (按八进制解析)
var num3 = parseInt("10", 10); //10 (按十进制解析)
var num4 = parseInt("10", 16); //16 (按十六进制解析)
parseFloat()
也是从第一个字符(位置 0)开始解析每个字符。而且也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。也就是说,字符串中的第一个小数点是有效的,而第二个小数点就是无效的了,因此它后面的字符串将被忽略。举例来说,"22.34.5"将会被转换为 22.34。
var num1 = parseFloat("1234blue"); //1234 (整数)
var num2 = parseFloat("0xA"); //0
var num3 = parseFloat("22.5"); //22.5
var num4 = parseFloat("22.34.5"); //22.34
var num5 = parseFloat("0908.5"); //908.5
var num6 = parseFloat("3.125e7"); //31250000
除了第一个小数点有效之外,parseFloat()与 parseInt()的第二个区别在于它始终都会忽略前导 的零
parseFloat()与 parseInt()是函数
toString()方法 String()转型函数
var num = 10;
alert(num.toString()); // "10"
--------------------------------------
var value1 = 10;
alert(String(value1)); // "10"
Object类型
对象其实就是一组数据和功能的集合
对象可以通过执行 new 操作符后跟要创建的对象类型的名称来创建
创建 Object 类型的实例并为其添加属性和(或)方法,就可以创建自定义对象,如下所示: var o = new Object();
var o = new Arrat();
对象就是拥有方法和属性的类型