Node.js初始-JavaScript学习笔记(一)

来源:互联网 发布:淘宝视频连接不是私密 编辑:程序博客网 时间:2024/05/19 01:14

想要从零开始学习Node.js,首先很有必要从JavaScript学起。网上有很多教程,本人就是通过JavaScript教程来学习JavaScript的。以下只是做笔记

strict模式

ECMA在后续规范中推出了strict模式,在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。

'use strict';

基本语法

  • JavaScript是动态语言,变量本身类型不固定的语言。
  • 不要使用==比较,始终坚持使用===比较。
  • NaN这个特殊的Number与所有其他值都不相等,包括它自己。
  • JavaScript的对象是一组由键-值组成的无序集合

字符串

  • JavaScript的字符串就是用”或”“括起来的字符表示。
  • 模板字符串
  • ${}

数组

JavaScript的Array可以包含任意数据类型,并通过索引来访问每个元素。直接给Array的length赋一个新的值会导致Array大小的变。Array可以通过索引把对应的元素修改为新的值。如果通过索引赋值时,索引超过了范围,同样会引起Array大小的变化。

var arr = [1,3,14,true,null,NaN,undefined,5]undefinedarr.length8arr.length = 1010arr[1, 3, 14, true, null, NaN, undefined, 5, undefined × 2]arr.length = 55arr

数组API:

  • indexOf()。与String类似,Array也可以通过indexOf()来搜索一个指定的元素的位置。
  • slice()就是对应String的substring()版本,它截取Array的部分元素,然后返回一个新的Array。
  • push()向Array的末尾添加若干元素,pop()则把Array的最后一个元素删除掉。
  • 如果要往Array的头部添加若干元素,使用unshift()方法,shift()方法则把Array的第一个元素删掉。
  • sort()可以对当前Array进行排序,它会直接修改当前Array的元素位置,直接调用时,按照默认顺序排序。
  • reverse()反转整个Array的元素。
  • splice()方法是修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素。
  • concat()方法把当前的Array和另一个Array连接起来,并返回一个新的Array。
  • join()方法是一个非常实用的方法,它把当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串。

对象

JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。实际上JavaScript对象的所有属性都是字符串,不过属性对应的值可以是任意数据类型。如果我们要检测对象是否拥有某一属性,可以用in操作符。要判断一个属性是否是对象自身拥有的,而不是继承得到的,可以用hasOwnProperty()方法。

条件判断

JavaScript把null、undefined、0、NaN和空字符串”视为false,其他值一概视为true。

循环

for循环的一个变体是for … in循环,它可以把一个对象的所有属性依次循环出来

for (var key in o) {  }

for … in循环可以直接循环出Array的索引。
for … in对Array的循环得到的是String而不是Number。

map和Set

Map是一组键值对的结构,具有极快的查找速度。

var m = new Map(); // 空Mapm.set('Adam', 67); // 添加新的key-valuem.set('Bob', 59);m.has('Adam'); // 是否存在key 'Adam': truem.get('Adam'); // 67m.delete('Adam'); // 删除key 'Adam'm.get('Adam'); // undefined

迭代

ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。具有iterable类型的集合可以通过新的for … of循环来遍历。

var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);for (var x of m) { // 遍历Map    alert(x);}

更好的方式是直接使用iterable内置的forEach方法,它接收一个函数,每次迭代就自动回调该函数。

0 0
原创粉丝点击