美文网首页
Javascript 复习笔记(一)

Javascript 复习笔记(一)

作者: 北冢 | 来源:发表于2017-12-11 19:54 被阅读0次

内置数据类型

1. Number

// % 是求余运算符
var a = 1024 ;
var a = 3.1415926 ;

2. String

var a = 'test_string' ;
var b = "test_string2" ;
`这是一个
多行
字符串`

模版字符串

var name = 'jessun' ;
var age = 27 ;
var message = `你好,${name}, 你今年${age}岁了。` ;

操作字符串

var s = 'hello, world!' ;
s.length ;

3. Boolean

true 或者 false

2 > 1 ; // �这是一个 ture

&& 是与运算符, || 是或运算符, ! 是非运算符

true && true || false  // 结果为 true
true || false          // 结果为 true
!true                  // 结果为 �false
!(2>5)                 // 结果为 ture

4. NaN

这是个特殊的量,与其他�所有值不想等,包括它自己:

NaN === NaN ;  // �结果为 false
isNaN(NaN) ;   // 结果为 true

5. null 和 undefined

null 表示一个“空”的值,相当于�� python 中的 None

undefined 表示“未定义”,如果一个函数没有 return,�调用返回值的时候��,会返回 undefined

6. 数组(Array)

类似 python 下的列表

var arr = [1, 2, 3, 4, 'hello'] ;
var arr = new Array(1, 2, 3, ,4, 'hello') ;

类似 python,可以是用索引访问

var arr = [1, 2, 3, 4, 5] ;
arr[0] ; // 返回数值1
arr[5] ; // 返回 undefinded

7. Map

ES6 新加入的数据类型,一组键值对的结构,具有极快的查找速度。无论多大,查找速度都不会变慢。

var m = new Map([['Jason', '90'], ['Kristen', '91'], ['Clair', '92']]) ;
m.get('Jason') ; // return 90

初始化 Map 需要一个�二维数组。

var m = new Map() ;
m.set('Jessun', 1) ;
m.set('Bob', 2) ;
m.has('Jessun') ; // return true
m.get('Bob') ; // return 2

m.delete('Bob') ;
m.get('Bob') ; // return undefined

8. Set

Set 中的 key 不能重复。

var s1 = new Set() ;
var s2 = new Set([1, 2, 3, 3]) ;
s2 ; // Set {1, 2, 3}
s2.add(4)
s2 ; // Set {1, 2, 3, 4}

9. iterable �对象

Array、Map 和 Set 都属于 iterable 对象,可以使用for...of来遍历。

10. 对象(Object)

无序键值对。

var person = {
  name: 'jessun',
  age: 27,
  tags: ['js', 'python', 'developer'],
  city: 'Shanghai',
  hasCar: false,
} ;
  • 所有键(key)都是字符串类型,所有的值可以是任意类型。

  • 通过.运算符访问属性。

    person.name ; // return 'jessun'
    
  • 也可以通过 ['xxx'] 来访问。

    person['name'] ; // �return 'jessun'
    

判断属性存在

`name` in person ; // return true
`toString` in person ; // return true
// 但是�继承而来的属性也会返回为 true

person.hasOwnProperty('name') ; // return true
person.hasOwnProperty('toString') ; // return false

基本语法

1. 赋值语句:

/* 这是注释。
另外,语句结尾需要加上分号。*/
var x = 1 ;

2. 判断语句:

// 这是一个多条件的判断
if (2 > 1){
  ...
} else if (2 = 1) {
} else {
  ...
} ;

3. 比较运算符

2 > 5 ;  // 结果为 false
7 == 7 ;  // 结果为 true

== �会自动转换数据类型进行比较,所以会得到一些不想要的结果。
=== 不会自动转换数据类型,如果数据类型不一致,就返回 false
所以,不要使用 == 比较,始终坚持使用 === 比较。
浮点数的想等比较不要使用 ===, 而是判断差值在某个在某个阀值之内。

4. 循环

4.1 for

var x = 0 ;
var i ;
for(i=1; i<=10000; i++) {
  x = x + i ;
}
// 可以用 break; 来退出循环

4.2 for...in...

var person = {
  name: 'jessun',
  age: 27,
  tags: ['js', 'python', 'developer'],
  city: 'Shanghai',
  hasCar: false,
} ;

for (var key in person) {
  console.log(key) ; // 可以把所有属性循环出来, 包括继承而来的属性
  if (person.hasOwnProperty(key)) {
    console.log(key) ; // 循环本身定义的属性
  }
} ;

var a = ['A', 'B', 'C'] ;
for (var i in a) {
  console.log(i) ;    // '0', '1', '2'
  console.log(a[i]) ; // 'A', 'B', 'C'
}
// return 都是字符串

4.3 for...of...

只循环元素

var a = ['A', 'B', 'C'] ;
a.name = ['Hello'] ;

for (var i in a) {
  console.log(i) ; // return '0', '1', '2', 'name'
} ;

for (var i of a) {
  console.log(i) ; // return  'A', 'B', 'C'
}

4.4 forEach()

ES5.1 标准引入

var a = ['A', 'B', 'C'] ;
a.forEach(function(element, index, array){
  // element: 指向当前元素的值
  // index:   指向当前索引
  // array:   指向 Array 对象本身
  console.log(element + ', index = ' + index) ;
} ;
) ;

var s = new Set(['A', 'B', 'C']) ;
s.forEach(function(element, sameElement, set){
  console.log(element) ;
} ;
) ;

var m = new Map([1, 'x'], [2, 'y'], [3, 'z']) ;
m.forEach(function(value, key, map){
  console.log(value) ;
} ;
) ;

4.5 while...

4.6 do...while...

相关文章

  • Javascript 复习笔记(一)

    内置数据类型 1. Number 2. String 模版字符串 操作字符串 3. Boolean true 或者...

  • JavaScript复习笔记(一)

    [TOC] 题外话: 其实我觉得能后通过自己感兴趣的事情给自己获取资源是一件很幸福的事情,这也是自己未来努力的方向...

  • JavaScript

    仅为个人学习笔记,复习用 一.语法 1.插入javascript 2. 引用JS外部文件 JavaScript代码...

  • JavaScript复习笔记(一):变量

    写在前面 进入工作,越发感觉原生JavaScript对于一名前端开发的重要性。各种前端框架、工具什么的,一天一个样...

  • javascript复习笔记(1)

    目的最近完成了一个项目和即将要进入一个新的项目,在这段时间内相对来说,可以静下来看看书,索性重头过一遍js。故记录...

  • javascript复习笔记(2)

    闭包 网上讲闭包的文章一搜一大把。而且面试时,比较传统的问题都有很大几率提到闭包的问题。的确,闭包是js中一个很重...

  • javascript复习笔记(3)

    this 上次讲了闭包,其实我感觉我上次没讲什么,闭包的确神秘,但是又不是很复杂,需要长篇大论去解释。刚好,我看到...

  • Javascript 复习笔记(二)

    函数 函数的定义 第一种: 第二种: 函数的调用� 特殊的参数 arguments 和 rest argument...

  • javascript复习笔记三(json)

    一、首先JSON是一种数据格式 JSON 是纯文本 JSON 具有"自我描述性"(人类可读) JSON 具有层级...

  • JavaScript复习

    主流浏览器 内核 IE trident Chro...

网友评论

      本文标题:Javascript 复习笔记(一)

      本文链接:https://www.haomeiwen.com/subject/mfyjixtx.html