JavaScript 是一种面向对象的动态语言,它包括类型、运算符、标准内置( built-in)对象和方法。它的语法来源于 Java 和 C,所以这两种语言的许多语法特性一样适用于 JavaScript。需要注意的一个主要区分是 JavaScript 不支持类,类这一概念在 JavaScript 通过对象原型(object prototype)得到延续(有关 ES6 类的内容参考这里Classes)。另外一个主要区分是 JavaScript 中的函数也是对象,JavaScript 允许函数在包括可履行代码的同时,能像其他对象一样被传递。
- Number(数字)
- String(字符串)
- Boolean(布尔)
- Symbol(符号)(第6版新增)
- Object(对象)
- Function(函数)
- Array(数组)
- Date(日期)
- Math(数学对象)
- RegExp(正则表达式)
- Null(空)
- Undefined(未定义)
- Error(问题)类型
1、number详解
Javascript中采取全浮点计算(双精读64位)注意 !在某些运算中会出错 eg:0.1 + 0.2 = 0.30000000000000004我们也能够使用JavaScript提供的Math内置对象,和 内置函数parseInt();另外JavaScript还提供了parseFloat(),但是它只支持解析十进制数字在parseInto("123",10) //123 -->10的含义是十进制
parseInt("010", 10); //10
parseInt("010"); // 8 如果没有第2个参数,那末以0开头就是8进制 0x开头就是16进制
parseInt("0x10"); // 16
如何把二进制转为整数值?
parseInt("10011",2);
当第一个参数不是数字型字符串parseInt("hello", 10);
// NaNNaN是一个特殊值 用它与任何数字计算 结果都是NaN
另外 还有两个特殊值 Infinity 和 -Infinity (正无穷和负无穷)用内置函数 isFinite( )可以判断一个变量是不是为 Infinity -Infinity NaN
2、字符串
JavaScript 中的字符串是一个 Unicode 字符序列
每个编码单元由一个 16 位二进制数表示。每个 Unicode 字符由一个或两个编码单元来表示。
"hello".charAt(0); // "h"
"hello, world".replace("hello", "goodbye"); // "goodbye, world"
"hello".toUpperCase(); // "HELLO"
"hello".length; // 5
3、其他类型(null 和 undefined)
null 的本质是一个空值,必须使用 null 关键字才能访问
undefined 是一个未定义类型的对象(也是一个对象),它表示一个未初始化的值,也就是还没有被分配值。(JavaScript 允许声明变量但不对其赋值,一个未被赋值的变量就是 undefined 类型)
布尔型:(true / false)其他类型对其转化
flase , 0 , " " , NaN , null , undefined 都会在 JavaScript 需要一个布尔值变量的时候隐式转换为 false (其他的都会转化为 true)
4、变量
在JavaScript中声明一个变量用var
var a;
var name = "simon";
var a;
var name = "simon";
在JavaScript中的语句块中 是没有作用域的
5、运算符
JavaScript 的算术操作符包括 +、-、*、/ 和 % ——求余(与模运算不同)。赋值使用 = 运算符,另外还有一些复合运算符,如 += 和 -=,它们等价于 x = x op y。
+可以用来连接字符串
"3" + 4 + 5; // 345
3 + 4 + "5"; // 75
1 === true; //false
123 === "123"; // false
123 == "123" // true
1 == true; // true
6、控制结构
if()...else if()...else()
while()
do...while()
for( ; ; )/for( : )
- 短路与:var name = o && o.getName();
- 短路或:var name = otherName || "default";
- 3元运算符:var allowed = (age > 18) ? "yes" : "no";
- 多重分支时可使用 基于一个数字或字符串的 switch 语句:(在 switch 的表达式和 case 的表达式是使用 === 严格相等运算符进行比较的:)
switch(action) {
case 'draw':
drawIt();
break;
case 'eat':
eatIt();
break;
default:
doNothing();
}
switch(1 + 3){
case 2 + 2:
yay();
break;
default:
neverhappens();
}
7、对象
对象的创建方式:
1.var obj = new Object();
2.var obj = {} --->对象字面量
var obj = {
name:"carrot",
"for":"Max",
details:{
color:"orange",
size:12
}
}
可以用链式访问:
obj.details.color;//orange
可以用中括号访问:
obj [ detail ] [ color ];
对象类型:(像是 Java 中的一个类)
function Person(name,age){
this.name = name;
this.age = age;
}
创建一个 Person 的对象:
var You=new Person("zhangjiahui","23");
可用 You.name="ZJH"; 来赋值
可用 var name=You.name; 来赋值
obj["name"] = "Simon";