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

想要从零开始学习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]
undefined
arr.length
8
arr.length = 10
10
arr
[1, 3, 14, true, null, NaN, undefined, 5, undefined × 2]
arr.length = 5
5
arr

数组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(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.set('Bob', 59);
m.has('Adam'); // 是否存在key 'Adam': true
m.get('Adam'); // 67
m.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值