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方法,它接收一个函数,每次迭代就自动回调该函数。
- Node.js初始-JavaScript学习笔记(一)
- Node.js学习笔记(一)-认识Node.js
- 学习笔记:Node.js(一)
- Node.js 学习笔记 (一)
- node.js学习笔记(一)
- node.js学习笔记(一)
- node.js学习笔记(一)
- node.js学习笔记(一)
- Node.js学习笔记(一)安装
- Node.js学习笔记(一)—— Node基础
- node.js 笔记(一)
- node.js学习一(node入门)
- java【学习笔记(一)】初始类
- openCV学习笔记(一)---初始openCV
- node.js开发之学习笔记(一)
- Node.js开发实战详解之学习笔记(一)
- node.js框架StrongLoop学习笔记(一)
- node js 学习笔记(一) 常用模块介绍
- Linux下的压缩zip,解压缩unzip命令详解及实例
- Intent直接跳转到Fragment
- JAVA编程中Thread类
- Partial Derivatives(偏导数)
- 利用ViewPager实现3D画廊效果及其图片加载优化
- Node.js初始-JavaScript学习笔记(一)
- SpringMVC表单标签简介
- 一句话总结Windbg 32位版本和64位版本的选择
- jQuery
- oracle维护
- python cookbook3
- C++ BMP转JPG方法二
- Linux 安装Nginx详细图解教程
- Android Studio 中DDMS无法显示文件树以及data文件夹中文件无法导出解决方法