1.1背景

1.1.1 ECMAScript与javascript

ECMAScript是javascript的官方命名。因为java已经是一个商标。如今,一些早前收到过授权的公司,如Moailla,是允许是有javascript这个名字的。使用javascript这个名字通常需要遵守一下规则:

~Javascript指的是一种编程语言。

~ECMAScript是这种语言规范的名字。so,每当提到这种语言的版本时,就是指ECMAScript.

1.1.2 javascript的影响和本质

javascript的创造者Brendan Eich.当时除了自己快速的创造这种语言外没别的选择(或者说,如果他不够快的话,Netscape公司将采用更糟糕的技术《Netscape/网景通信公司》)。

他借鉴了各种编程语言,如Java(语法、原始值和对象),Scheme、AWK(第一类函数),Self(原型继承)、Perl和Python(字符串、数组和正则表达式)。

直到ECMAScript 3之前,javascript都没有异常处理,这也是为什么他经常会自动转换值和静默失败的原因:他最初不能抛出异常。

一方面,javascript 有些怪异和功能缺失(比如块作用域、模块、子类支持等)。另一方面,他有许多强大的特性可以来弥补这些问题。在其他的语言里,我们学的是语言特性,而在jsvascript中,我们常学到的是模式。

有鉴于此,javascript支持函数式编程(高阶函数、内置的map 和 reduce等)和面向对象编程(对象、继承)的混合编程风格也就不足为奇了。

1.2 语法

1.2.1 语法概述

// two slashes start single-line comments 两条斜杠开始单行注释

var x;            //declaring a value to the variable 'x'   声明一个变量

x = 3 + y;      //assigning a value to the variable 'x'  将变量赋值给‘x’

foo(x,y);       //calling function 'foo' with parameters 'x' and 'y'  调用带参x,y的函数

obj.bar(3);     //calling method 'bar' of object 'obj'  调用方法“bar”的对象 'obj';

// A conditional statement 一个条件语句

if (x === 0){     //Is 'x' equal to zero?  'x'等于零吗?

x = 123;

}

“=”“==”和“===”的区别:http://www.cnblogs.com/liuqingxia/p/7792890.html

//Defining function 'baz' width parameters 'a' and 'b' 定义带参a,b函数‘baz’

function baz(a,b){

return a + b

}

1.2.2 语句和表达式

要理解javascript的语法,需要认识他的两大语法类别:语句和表达式。

~ 语句“做事情”。程序其实就是一系列的语句的集合。如这个语句的示例,他用来声明(或创建)一个变量 foo:

var foo;

~ 表达式产生值。他们通常是函数的参数,或是赋值的右边部分。比如:

3 * 7

js中有两种方式来实现 if - then - else,者可以很好的说明语句和表达式之间的区别。语句的方式:

var x;

if ( y > = 0){

x = y;

}else {

x = -y;

}

表达式的方式: var x = y >= 0? y : -y

后面这种方式可以用于函数的参数(前面的不行):

myFunction(y >= 0 ? y : -y)

1.3 变量和赋值

js里变量在声明后使用: var foo;

1.3.1 赋值

变量声明和赋值可以同时进行: var foo = 6;

也可以为一个已有变量赋值: foo = 4;

1.3.2 复合赋值运算符

在js中还会有复合赋值运算符,如 +=。以下两种赋值实际上是相等的:

x += 1;

x = x + 1;

复合赋值运算符详解:

1.3.3 标识符与保留字

标识符:

区分大小写,变量的名字都是标识符。Class与class就是不同的标识符。

标识符的首字符可以使下划线(_)、美元符($)、字母;

标识符除首字符外可以是下划线(_)、美元符($)、数字、字母。

例如:

_anh7、$ahn、asadas 合法的

1sds、class、room# 是不合法的

保留字:是语法的一部分,不能作为变量名使用(包括函数名和参数名):

arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while

以下3个标识符不是保留字,但同样需要视为保留字:

Infinity、NaN、undefined

JS快速上手-基础Javascript的更多相关文章

  1. 如何快速上手基础的CSS3动画

    前言 说起CSS3动画,就必须说说 transform,translate,transition,animation这4个属性,transform主要定义元素的动作,比如旋转.倾斜.位移等,trans ...

  2. Three.js 快速上手以及在 React 中运用[转]

    https://juejin.im/post/5ca22692f265da30a53d6656 github 的地址 欢迎 star! 之前项目中用到了 3D 模型演示的问题,整理了一下之前学习总结以 ...

  3. 异步编程:When.js快速上手

    前些天我在团内做了一个关于AngularJS的分享.由于AngularJS大量使用Promise,所以我把基于Promise的异步编程也一并介绍了下.很多东西都是一带而过,这里再记录下. Angula ...

  4. Vue.JS快速上手(组件生命周期)

    一.什么是组件 组成网页独立功能基本单元(片段), 复用.维护.性能, Vue.js中的组件就是一个Vue的实例,Vue中的组件包含data/methods/computed. 一个Vue.js的应用 ...

  5. Vue.JS快速上手(组件间的通信)

    前言 Vue采用的是组件化思想,那么这些组件间是如何通信的呢?下面详细介绍一下. 所谓组件间通信,不单单是我们字面上理解的相互传递数据,这里还包括一个组件访问另一个组件的实例方法等,如父组件通过ref ...

  6. Vue.JS快速上手(指令和实例方法)

    1.声明式渲染 首先,我们要知道Vue是声明式渲染,那啥是声明式渲染,我们只需要告诉程序我们想要什么结果,其他的交给程序来做.与声明式渲染相对的是命令式渲染,即命令我们的程序去做什么,程序就会跟着你的 ...

  7. Vue.JS快速上手(Vue-router 实现SPA 开发)

    一.什么是路由 URL -> 映射 -> 组件 Hash+onhashchange History.pushstate+replaceState+onpopstate 二.准备工作 组件 ...

  8. React:快速上手(1)——基础知识

    React:快速上手(1)——基础知识 React(有时叫React.js或ReactJS)是一个为数据提供渲染为HTML视图的开源JavaScript库,用于构建用户界面. JSX.元素及渲染 1. ...

  9. 【转】Vue.js 2.0 快速上手精华梳理

    Vue.js 2.0 快速上手精华梳理 Sandy 发掘代码技巧:公众号:daimajiqiao 自从Vue2.0发布后,Vue就成了前端领域的热门话题,github也突破了三万的star,那么对于新 ...

随机推荐

  1. springBoot 集成swagger2.9.2

    加依赖 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> <dependen ...

  2. uvm transaction modeling

    1.what is transaction? network transactions tcp/ip wifi 3g/4g bus transactions amba-ahb/apb/axi pci/ ...

  3. 【nginx】nginx.sh nginx 安装脚本

    #! /bin/shcd /usr/local/srcwget http://nginx.org/download/nginx-1.10.1.tar.gzecho 'download success' ...

  4. SQL防止重复提交和Filter

    /class User package com.neuedu.bean; import java.io.Serializable; public class User implements Seria ...

  5. HDU 5025 Saving Tang Monk(状态转移, 广搜)

    #include<bits/stdc++.h> using namespace std; ; ; char G[maxN][maxN], snake[maxN][maxN]; ]; int ...

  6. Leetcode 145. 二叉树的后序遍历

    题目链接 https://leetcode-cn.com/problems/binary-tree-postorder-traversal/description/ 题目描述 给定一个二叉树,返回它的 ...

  7. java内存模型学习

    根据 JVM 规范,JVM 内存共分为虚拟机栈.堆.方法区.程序计数器.本地方法栈五个部分. 虚拟机的内存模型分为两部分:一部分是线程共享的,包括 Java 堆和方法区:另一部分是线程私有的,包括虚拟 ...

  8. Flash中国地图 开放源码

    Flash中国地图,以Object为数据源,便于实现基于中国地图的可视化项目. 特征: swc,便于导入到Flex项目中 数据源为Object,比XML更方便 数据驱动的地图块颜色和Hover颜色 可 ...

  9. struts2对properties资源的处理

    struts2对properties资源的处理 做了一些功能增强 包括: 可以读取项的描述 可以读取项所在的行号,文件路径等 实现方式 继承了java的java.util.Properties实现了一 ...

  10. python - 文件处理/open

    # -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_文件处理.py@ide: PyCharm Community E ...