JS笔记

\1. JavaScript 程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是一个语句。

\2. 如果只是声明变量而没有赋值,则该变量的值是undefined。

3.三元运算符

JavaScript 还有一个三元运算符(即该运算符需要三个运算子)?:,

也可以用于逻辑判断。

(条件) ? 表达式1 : 表达式2

上面代码中,如果“条件”为true,则返回“表达式1”的值,否则返回“表达式2”的值。

var even = (n % 2 === 0) ? true : false;

\4. break语句和continue语句都具有跳转作用,可以让代码不按既有的顺序执行。

​ break语句用于跳出代码块或循环。

​ continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环。

5.JavaScript 的数据类型,共有六种

(1)数值(number):整数和小数(比如1和3.14)。

(2)字符串(string):文本(比如Hello World)。

(3)布尔值(boolean):表示真伪的两个特殊值,即true(真)和false(假)。

(4)undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值。

(5)null:表示空值,即此处的值为空。

(6)对象(object):各种值组成的集合

6.JavaScript 有三种方法,可以确定一个值到底是什么类型。

(1)typeof运算符

​ 数值、字符串、布尔值分别返回number、string、boolean。

​ typeof 123 // "number"

​ typeof '123' // "string"

​ typeof false // "boolean"

(2)instanceof运算符

(3)Object.prototype.toString方法

7.布尔值代表“真”和“假”两个状态。“真”用关键字true表示,“假”用关键字false表示。布尔值只有这两个值。

下列运算符会返回布尔值:

前置逻辑运算符: ! (Not)

相等运算符:===,!==,==,!=

比较运算符:>,>=,<,<=

8.parseInt()

(1)基本用法

​ parseInt方法用于将字符串转为整数。

​ parseInt('123') // 123

​ 如果parseInt的参数不是字符串,则会先转为字符串再转换。

​ parseInt(1.23) // 1

​ // 等同于

​ parseInt('1.23') // 1

​ 如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN。

​ parseInt('abc') // NaN

​ parseInt('.3') // NaN

​ parseInt('') // NaN

​ parseInt('+') // NaN

​ parseInt('+1') // 1

(2)进制转换

​ parseInt方法还可以接受第二个参数(2到36之间),表示被解析的值的进制,返回该值对应的十进制数。默认情况下,parseInt的第二个参数为10,即默认是十进制转十进制。

​ parseInt('1000') // 1000

​ // 等同于

​ parseInt('1000', 10) // 1000

9.parseFloat()

​ parseFloat方法用于将一个字符串转为浮点数。

​ parseFloat('3.14') // 3.14

10.isNaN()

​ isNaN方法可以用来判断一个值是否为NaN。

​ isNaN(NaN) // true

​ isNaN(123) // false

11.isFinite()

​ isFinite方法返回一个布尔值,表示某个值是否为正常的数值。

​ isFinite(Infinity) // false

​ isFinite(-Infinity) // false

​ isFinite(NaN) // false

​ isFinite(undefined) // false

​ isFinite(null) // true

​ isFinite(-1) // true

​ 除了Infinity、-Infinity、NaN和undefined这几个值会返回false,isFinite对于其他的数值都会返回true。

12.转义

反斜杠(\)在字符串内有特殊含义,用来表示一些特殊字符,所以又称为转义符。

需要用反斜杠转义的特殊字符,主要有下面这些。

  • \0 :null(\u0000
  • \b :后退键(\u0008
  • \f :换页符(\u000C
  • \n :换行符(\u000A
  • \r :回车键(\u000D
  • \t :制表符(\u0009
  • \v :垂直制表符(\u000B
  • \' :单引号(\u0027
  • \" :双引号(\u0022
  • \\ :反斜杠(\u005C
  • 13.字符串与数组

    字符串可以被视为字符数组,因此可以使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始)。

    var s = 'hello';
    s[0] // "h"
    s[1] // "e"
    s[4] // "o"
    
    // 直接对字符串使用方括号运算符
    'hello'[1] // "e"

14.length 属性

length属性返回字符串的长度,该属性也是无法改变的。

var s = 'hello';
s.length // 5

s.length = 3;
s.length // 5

s.length = 7;
s.length // 5

上面代码表示字符串的length属性无法改变,但是不会报错。

15.对象(object)是 JavaScript 语言的核心概念,也是最重要的数据类型。

什么是对象?简单说,对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。

var obj = {
  foo: 'Hello',
  bar: 'World'
};

16.键名

对象的所有键名都是字符串(ES6 又引入了 Symbol 值也可以作为键名),所以加不加引号都可以。上面的代码也可以写成下面这样。

var obj = {
  'foo': 'Hello',
  'bar': 'World'
};

17.属性的读取

读取对象的属性,有两种方法,一种是使用点运算符,还有一种是使用方括号运算符。

var obj = {
  p: 'Hello World'
};

obj.p // "Hello World"
obj['p'] // "Hello World"

18.属性的赋值 #

点运算符和方括号运算符,不仅可以用来读取值,还可以用来赋值。

var obj = {};

obj.foo = 'Hello';
obj['bar'] = 'World';

19.属性的查看

查看一个对象本身的所有属性,可以使用Object.keys方法。

var obj = {
  key1: 1,
  key2: 2
};

Object.keys(obj);
// ['key1', 'key2']

20.属性的删除:delete 命令 #

delete命令用于删除对象的属性,删除成功后返回true

var obj = { p: 1 };
Object.keys(obj) // ["p"]

delete obj.p // true
obj.p // undefined
Object.keys(obj) // []

21.属性是否存在:in 运算符

in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值),如果包含就返回true,否则返回false。它的左边是一个字符串,表示属性名,右边是一个对象。

var obj = { p: 1 };
'p' in obj // true
'toString' in obj // true

in运算符的一个问题是,它不能识别哪些属性是对象自身的,哪些属性是继承的。就像上面代码中,对象obj本身并没有toString属性,但是in运算符会返回true,因为这个属性是继承的。

这时,可以使用对象的hasOwnProperty方法判断一下,是否为对象自身的属性。

var obj = {};
if ('toString' in obj) {
  console.log(obj.hasOwnProperty('toString')) // false
}

22.with 语句

with语句的格式如下:

with (对象) {
  语句;
}

``

你可能感兴趣的:(javascript)