JS学习笔记(一)

来源:互联网 发布:淘宝联盟渠道名称 编辑:程序博客网 时间:2024/05/21 10:31

参考文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/A_re-introduction_to_JavaScript

一、JavaScript概览

JS是一种面向对象的动态语言,它包含类型、运算符、标准内置(built-in)对象和方法。JS与Java、C比较的两个主要区别是(1)JS不支持类,类这一概念在JS中通过对象原型(object prototype)得到延续(有关ES6类的内容可以参考Classes的相关文档,链接为https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Classes)
(2)JS中函数也是对象,js允许函数在包含可执行代码的同时,能像其他对象一样被传递。

二、JS类型

包含以下类型

  • Number(数字)
  • String(字符串)
  • Boolean(布尔)
  • Symbol(符号)第六版新增
  • Object(对象)
    。Function(函数)
    。Array(数组)
    。Date(日期)
    。RegExp(正则)

  • Null(空)

  • Undefined(未定义)
    JavaScript 还有一种内置Error(错误)类型,以后介绍

三、数字类型

JS采用“IEEE 754 标准定义的双精度64位格式”(double-precision 64-bit format IEEE 754 values)表示数字。JS不区分整数值和浮点数值。所以在JS中均用浮点数值表示。
这里写图片描述
js支持标准的算术运算符,包含加、减、取模(或取余)等。另外js中有一个内置对象Math,用于处理更多的数学函数和常数。
例如:Math.PI*(r+r);
Math.sin(3.5);
还有一个内置的函数parseInt()可以将字符串转换成整型,
这里写图片描述
注:js2013版之前的parseInt(“0123”)返回的数值为8;这是因为字符串以数字 0 开头,*parseInt()函数会把这样的字符串视作八进制数字;同理,0x开头的字符串则视为十六进制数字。*
单元运算符+也可以实现将字符串类型转换成数值!
这里写图片描述
另一个内置函数parseFloat(),解析浮点数字符串,与parseInt()的区别是parseFloat()只解析十进制的。
内置函数 isNaN() 来判断一个变量是否为 NaN
内置函数 isFinite() 来判断一个变量是否是一个有穷数
如果类型为Infinity, -Infinity 或 NaN则返回false:
这里写图片描述
*备注: parseInt() 和 parseFloat() 函数会尝试逐个解析字符串中的字符,直到遇上一个无法被解析成数字的字符,然后返回该字符前所有数字字符组成的数字。使用运算符 “+” 将字符串转换成数字,只要字符串中含有无法被解析成数字的字符,该字符串都将被转换成 NaN。
这里写图片描述

四、字符串

JavaScript 中的字符串是一串Unicode 字符序列。更准确地说,它们是一串UTF-16编码单元的序列,每一个编码单元由一个 16 位二进制数表示。每一个Unicode字符由一个或两个编码单元来表示。
JS中字符串也可以像js中对象一样使用字符串,它也有方法(methods),能操作字符串和获取字符串的信息。
这里写图片描述

五、其他类型

JS中null和undefined的区别:
null表示一个空值(non-value),必须使用null关键字才能访问,undefined表示未定义类型的对象,表示一个未初始化的值,JavaScript 允许声明变量但不对其赋值,一个未被赋值的变量就是 undefined 类型。还有一点需要说明的是,undefined 实际上是一个不允许修改的常量。
Boolean类型
JavaScript 按照如下规则将变量转换成布尔类型:

  1. false、0、空字符串(“”)、NaN、null 和 undefined 被转换为 false
  2. 所有其他值被转换为 true

也可以使用 Boolean() 函数进行显式转换:

这里写图片描述

六、变量

声明一个对象使用关键字var
var a;
如果声明了一个变量却没有对其赋值,那么这个变量的类型就是 undefined。
注:JavaScript 与其他语言的(如 Java)的重要区别是在 JavaScript 中语句块(blocks)是没有作用域的,只有函数有作用域。因此如果在一个复合语句中(如 if 控制结构中)使用 var 声明一个变量,那么它的作用域是整个函数(复合语句在函数中)。 但是从 ECMAScript Edition 6 开始将有所不同的, let 和 const 关键字允许你创建块作用域的变量。

七、运算符

JavaScript的算术操作符包括 +、-、*、/ 和 % ——求余(与模运算不同)。赋值使用 = 运算符,此外还有一些复合运算符,如 += 和 -=,它们等价于 x = x op y。
这里写图片描述
+操作符还可以连接字符串;
这里写图片描述
可以看出和空字符串相加,可以将数字转换成字符串

比较操作符使用 <、>、<= 和 >=,==
这里写图片描述
js还提供了位操作符。

八、结构控制

  1. if…else…
  2. while
  3. do-while
  4. for()
  5. &&和||
  6. (a>b)?a:c
  7. switch