为什么学习JavaScript?

无所不能的语言

  • 浏览器
  • Node.js
  • 数据库操作
  • 移动平台
  • 桌面应用程序

所有能用javascript重写的,最后都会用javascript重写

浏览器中的JS

HTML 5出现之后,JavaScript可以调用许多系统功能,比如操作本地文件、操作图片、调用摄像头和麦克风等

Node.js

Node.js项目使得JavaScript可以用于开发服务器端的大型项目,网站的前后端都用JavaScript开发已经成为了现实。有些嵌入式平台(Raspberry Pi)能够安装Node.js,于是JavaScript就能为这些平台开发应用程序。

数据库操作

NoSQL数据库这个概念,本身就是在JSON(JavaScript Object Notation,JavaScript对象表示法)格式的基础上诞生的,大部分NoSQL数据库允许JavaScript直接操作。

facebook的GraphQL更是一个完全面向json的数据库。

跨移动平台

PhoneGap让你几乎可以同时开发iOS和Android 应用。React Native 使JS开发的应用性能更好,iOS和Android端代码复用80%以上。

基本语法

变量

var a = 1;
var b;

console.log(a) // 1
console.log(b) // undefined

b=2;
console.log(b) // 2

//ES6
const SERVER_PORT = 80;

function some () {
    let a = 1;
}

数值

1 === 1.0 // true
1 + 1.0 // 2

//由于浮点数不是精确的值,所以涉及小数的比较和运算要特别小心。

0.1 + 0.2 === 0.3
// false

0.3 / 0.1
// 2.9999999999999996

(0.3-0.2) === (0.2-0.1)
// false

JavaScript内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,11.0是相等的,而且1加上1.0得到的还是一个整数,不会像有些语言那样变成小数。

数值的表示法

//以下两种情况,JavaScript会自动将数值转为科学计数法表示,其他情况都采用字面形式直接表示。

//小数点前的数字多于21位。


1234567890123456789012
// 1.2345678901234568e+21

123456789012345678901
// 123456789012345680000


//小数点后的零多于5个。

0.0000003 // 3e-7
0.000003 // 0.000003

根据国际标准IEEE 754,64位浮点数格式的64个二进制位中,第0位到第51位储存有效数字部分,第52到第62位储存指数部分,第63位是符号位,0表示正数,1表示负数。

字符串

var word = 'abc';
var word2 = "abc";
var word3 = `abc${word}`;

var sentence = "Tom: \"nihao!\"";

字符串就是若干个排在一起的字符,放在单引号或双引号之中。ES6中还可以使用反撇号`。

对象

var fish = {
    name: "Nemo",
    type: "Clownfish",
    say : function (sentence) {
              console.log(sentence);
          }
};

fish.name // Nemo
fish['name'] // Nemo

fish.say('some words')

对象(object)是JavaScript的核心概念,也是最重要的数据类型。JavaScript的所有数据都可以被视为对象。简单说,所谓对象,就是一种无序的数据集合,由若干个“键值对”(key-value)构成。

数组

var arr = ['a', 'b', 'c'];

arr[0] // a
arr[1] // b
arr[1] // c
arr.length // 3

//二维数组

var a = [[1, 2], [3, 4]];
a[0][1] // 2
a[1][1] // 4


//任意一种类型的数据,都可以放入数组。

var arr = [
  {a: 1},
  [1, 2, 3],
  function() {return true;}
];

arr[0] // Object {a: 1}
arr[1] // [1, 2, 3]
arr[2] // function (){return true;}

数组(array)是按次序排列的一组值,每个值的位置都有编号(从0开始)。整个数组用方括号表示。

函数


var print = function(){
  console.log(233)
};

function print (){
  console.log(233)
};

//retrun 

function add(x,y) {
  return x+y;
}

add(1,1) // 2

函数就是使用function命令命名的代码区块,便于反复调用。

运算符

运算符是用来处理数据的基本方法。JavaScript与其他编程语言一样,提供了多种运算符。

JavaScript提供9个算术运算符。

  • 加法运算符(Addition):x + y

  • 减法运算符(Subtraction): x - y

  • 乘法运算符(Multiplication): x * y

  • 除法运算符(Division):x / y

  • 余数运算符(Remainder):x % y

  • 自增运算符(Increment):++x 或者 x++

  • 自减运算符(Decrement):--x 或者 x--

  • 求负运算符(Negate):-x

  • 数值运算符(Convert to number): +x

Node.js

node.js是啥?

Node.js是一个后端的Javascript运行环境(支持的系统包括*nux、Windows),这意味着你可以编写系统级或者服务器端的Javascript代码,交给Node.js来解释执行。Node.js的设计思想中以事件驱动为核心,它提供的绝大多数API都是基于事件的、异步的风格。

npm是啥?

NPM(node package manager),通常称为node包管理器。顾名思义,它的主要功能就是管理node包,包括:安装、卸载、更新、查看、搜索、发布等。

npm的背后,是基于couchdb的一个数据库,详细记录了每个包的信息,包括作者、版本、依赖、授权信息等。它的一个很重要的作用就是:将开发者从繁琐的包管理工作(版本、依赖等)中解放出来,更加专注于功能的开发。

Express

基于 Node.js 平台,快速、开放、极简的 web 开发框架。

hexo

A fast, simple & powerful blog framework

Made with Slides.com