JavaScript类型、运算符、对象和方法总结

2020-12-30 14:51:41 浏览数 (2571)

JavaScript 是一种面向对象的动态语言,它包括类型、运算符、标准内置( built-in)对象和方法。它的语法来源于 Java 和 C,所以这两种语言的许多语法特性一样适用于 JavaScript。需要注意的一个主要区分是 JavaScript 不支持类,类这一概念在 JavaScript 通过对象原型(object prototype)得到延续(有关 ES6 类的内容参考这里Classes)。另外一个主要区分是 JavaScript 中的函数也是对象,JavaScript 允许函数在包括可履行代码的同时,能像其他对象一样被传递。

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( : )

  1. 短路与:var name = o && o.getName();
  2. 短路或:var name = otherName || "default";
  3. 3元运算符:var allowed = (age > 18) ? "yes" : "no";
  4. 多重分支时可使用 基于一个数字或字符串的 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";