一、JavaScript引入方式

1、行内式

<script>

  alert(123);

</script>

2、外链式

<script src='custom.js'></script>

  

二、JavaScript基础语法

1、变量

a、变量区分大小写;

b、JavaScript中变量是弱类型,即无需声明变量的具体类型,比如int、string等。

c、变量定义

  • 定义单个变量:var a=123;
  • 一行声明多个变量var a=123,b='test';
  • 注意定义时用关键字:var。如果不用var,则为全局变量。

d、变量命名,首字符只能是字母,下划线,$美元符 三选一

e、变量命名规则

Camel 标记法
首字母是小写的,接下来的字母都以大写字符开头。例如:
var myTestValue = 0, mySecondValue = "hi";
Pascal 标记法
首字母是大写的,接下来的字母都以大写字符开头。例如:
Var MyTestValue = 0, MySecondValue = "hi";
匈牙利类型标记法
在以 Pascal 标记法命名的变量前附加一个小写字母(或小写字母序列),说明该变量的类型。例如,i 表示整数,s 表示字符串,如下所示“
Var iMyTestValue = 0, sMySecondValue = "hi";

  

2、基础规范

  • a、每行结束可以不加分号. 没有分号会以换行符作为每行的结束,最好加分号;
  • b、注释 支持多行注释和单行注释: /* */  //
  • c、{}作为代码块

3、关键字

ECMA-262 描述了一组具有特定用途的关键字。这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。以下就是ECMAScript的全部关键字(带*号上标的是第5 版新增的关键字):

4、保留字

ECMA-262 还描述了另外一组不能用作标识符的保留字。尽管保留字在这门语言中还没有任何特定的用途。但它们有可能在将来被用作关键字。以下是ECMA-262 第3 版定义的全部保留字:

在严格模式下,第5 版还对以下保留字施加了限制:

5、值

在 ECMAScript 中,变量可以存在两种类型的值,即原始值和引用值。类似python里面的传值和传引用。一个是内存地址、一个是索引地址或指针。

原始值

存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。

引用值

存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存处。

如果一个值是引用类型的,那么它的存储空间将从堆中分配。由于引用值的大小会改变,所以不能把它放在栈中,否则会降低变量查寻的速度。相反,放在变量的栈空间中的值是该对象存储在堆中的地址。地址的大小是固定的,所以把它存储在栈中对变量性能无任何负面影响。如下图所示:

6、原始类型

ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Boolean、Number 和 String。

a、Undefined:未定义的。类型是Undefined,值是undefined。

  • 比如定义变量:var a。定义一个变量,并不给他赋值,这时它的值就是undefined。
  • 如果使用一个未定义的变量b,它也是Undefined类型,值是undefined 。
  • 一个函数无明确返回值时,它也是Undefined类型。

b、Null:空。类型是Null,值是null。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

  • 注意:null=undefined【字面量相等,就是值相等】。尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象。如果函数或方法要返回的是对象,找不到该对象时,返回的通常是 null。

c、Boolean 布尔类型

  • true和false。字面量为0和1。

d、Number类型

  • 1、整数   var a=123;
  • 2、浮点数 var b=2.123;
  • 3、八进制数 var c=0123;
  • 4、十六进制数  var d=0x123;
  • 5、特殊的Number
    • Number.MAX_VALUE 和 Number.MIN_VALUE表示数字的边界,最大值和最小值。
    • NaN:当类型转换失败时就会出现这种数据类型。比如当一个字符串转换为数字时,就是出现。(Not a Number。)
    • 由于NaN字面意思是:不是一个数字,所以NaN不用于算术运算。
    • 同时,NaN!=NaN。而我们一般使用isNaN()函数,比如isNaN(‘test’)输出true。

e、String 字符串类型

1、由Unicode字符、数字、标点符号组成的序列
2、字符串由单引号或双引号括起
3、字符串中部分特殊字符必须加上转义线\。常用的转义字符 \n:换行 \':单引号 \":双引号 \\:右划线

7、类型转换

JavaScript是松散类型的语言。当变量被赋值时才确定数据类型,这一点和python一样。但是比python更松散。

比如:

var a=123;

var b='123';

a+b 的结果为'123123'

  • 数字 + 字符串:数字转换为字符串
  • 数字 + 布尔值:true转换为1,false转换为0
  • 字符串 + 布尔值:布尔值转换为字符串true或false
  • 转换成字符串:toString()
  • 转换成数字:parseInt()
  • 转化成浮点数:parseFloat
  • 强制类型转换:String()、Boolean()、Number()

8、类型查询:typeof

typeof(123);  #number

9、引用类型

引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象。类似python中的type类。其实他本身就是一个类。

var o = new Object(); #typeof(o)  object
var oBooleanObject = new Boolean(true);
var oNumberObject = new Number(68);
var oStringObject = new String("hello world");
												

JavaScript快速入门-ECMAScript基础语法的更多相关文章

  1. JavaScript快速入门-ECMAScript函数

    JavaScript函数(定义.参数.返回值.闭包.匿名函数) 一.函数定义 function functionName(arg0, arg1, ... argN) { statements } 函数 ...

  2. JavaScript快速入门-ECMAScript运算符

    1.逻辑运算符 逻辑与:&&(and) 逻辑或:||(or) 逻辑非:!(not) 逻辑 AND 运算符(&&) 逻辑 AND 运算的运算数可以是任何类型的,不止是 B ...

  3. JavaScript快速入门-ECMAScript语句

    JavaScript语句(if.for.for in.do...while.while.break.continue.switch) 一.if语句 if (condition) statement1 ...

  4. JavaScript快速入门-ECMAScript对象介绍

    一.概念介绍 在 ECMAScript 中,所有对象并非同等创建的.一般来说,可以创建并使用的对象有三种:本地对象.内置对象和宿主对象. 要理解这三种对象,先要理解宿主环境. 1.宿主环境 一般宿主环 ...

  5. JavaScript快速入门-ECMAScript本地对象(String)

    一.String对象 String对象和python中的字符串一样,也有很多方法,这些方法大概分为以下种类: 1.索引和查找 1.charAt()   返回指定位置的字符. 2.charCodeAt( ...

  6. JavaScript快速入门-ECMAScript本地对象(RexExp)

    一.概述 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 正则表达式是由一个字符序列形成的搜索模式. 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容. 正则表达式 ...

  7. javascript快速入门24--XML基础

    XML简介 XML代表Extensible Markup Language(eXtensible Markup Language的缩写,意为可扩展的标记语言).XML 被设计用来传输和存储数据.XML ...

  8. javascript快速入门14--DOM基础

    DOM(Document Object Model)——文档对象模型 什么是DOM? Document Object Model (DOM)是HTML和XML文档的编程接口.它提供了上述文档的一种结构 ...

  9. JavaScript快速入门-ECMAScript本地对象(Array)

    Array对象 Array对象和python里面的list对象一样,是用来存储多个对象值的对象,且方法和属性基本上类似. 一.属性 lenght 二.方法  1.concat()  用于连接两个或多个 ...

随机推荐

  1. 03-03_启动weblogic domain

    本文重点: 直接启动weblogic 控制台访问 weblogic概念及手工启动脚本分析 启动weblogic 启动admin Server做了哪些事情     一.直接启动weblogic [roo ...

  2. Oracle EBS INV更新保留

    CREATE or REPPLACE PROCEDURE UpdateReservation AS -- Common Declarations l_api_version NUMBER := 1.0 ...

  3. idea 2017破解方法

    http://blog.csdn.net/zx110503/article/details/78734428

  4. 【转】Mysql学习---SQL的优化

    [原文]https://www.toutiao.com/i6594314336913588743/ mysql如何处理亿级数据,第一个阶段--优化SQL语句 1.应尽量避免在 where 子句中使用! ...

  5. PyCharm导入模块报No model named

    PyCharm导入模块报No model named 引言 在PyCharm中同目录下import其他模块,出现No model named ...的报错,但实际可以运行的情况. 这很可能是因为PyC ...

  6. October 11th 2017 Week 41st Wednesday

    If you don't know where you are going, you might not get there. 如果你不知道自己要去哪里,你可能永远到不了那里. The reward ...

  7. Python学习(七)面向对象 ——继承和多态

    Python 类的继承和多态 Python 类的继承 在OOP(Object Oriented Programming)程序设计中,当我们定义一个class的时候,可以从某个现有的class 继承,新 ...

  8. python第三十九课——面向对象(二)之设计类

    1.设计类class 车: #属性 颜色 = red 品牌 = "BMW" 车牌 = "沪A88888" #函数 行驶(): 停止(): 2.实例化车对象 ca ...

  9. HDU 1203 I NEED A OFFER!(01背包+简单概率知识)

    I NEED A OFFER! Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Sub ...

  10. day13,day14

    day13 迭代器 什么是迭代器? 迭代:是一个重复的过程,每一次重复,都是基于上一次的结果而进行的 器:迭代取值的工具 为何要用迭代器? 迭代器提供了一种通用的不依赖于索引的迭代取值方式 如何用迭代 ...