Javascript语法基础

 

一、基本数据类型

 

JavaScript中支持数字、字符串和布尔值三种基本数据类型:

1.数字

数字型是JavaScript中的基本数据类型。在JavaScript中的数字不区分整型和浮点型,所有的数字都是以浮点型来表示的。

2.字符串

字符串型是JavaScript中用来表示文本的数据类型,是由Unicode字符、数字和标点符号组成的一个字符串序列。字符串通常都是用单引号或双引号括起来的。如果在字符串中包括着特殊字符,可以使用转义字符来代替。例如:

“”   //空串,它的字符数是0

“hello world!”   //表示字符串hello world

“3.14”

“这个字符串\n共有两行内容”  //其中\n是表示换行的转义字符

“you\'re right,it can\'t be quote” //其中\’是表示单引号的转义字符

3.布尔型

布尔型比较简单,只有两个值,即代表真的“true”和代表假的“false”。布尔值通常是通过比较得来的,如以下代码:

x == 2

在上面代码中,如果x等于2,则返回true,如果x不等于2,则返回false。

 

二、复合数据类型

 

JavaScript复合数据类型包括对象和数组两种。

1.对象

对象其实就是一些数据的集合,这些数据可以是字符串型、数字型、布尔型,也可以是复合型。对象中的数据是已命名的数据,通常作为对象的属性来引用。例如一个超链接(link)对象有一个名为text的属性,可以通过以下方法来引用:

link.text

JavaScript中的对象除了拥有属性之外,还可以拥有方法。例如一个窗口(window)对象有一个名为alert的方法,可以通过以下方法来引用:

window.alert(message)

2.数组

数组与对象一样,也是一些数据的集合,这些数据也可以是字符串型、数字型、布尔型,或者是复合型。与对象不同的,数组中的数据并没有被命名,即数组的中数据没有名字,因此不能通过名字来引用该数据。在数组中为每个数据都编了一个号,这个号称为数组的下标。在JavaScript中数组的下标是从0开始,通过使用数组名加下标的方法可以获取数组中的某个数据。如以下代码分别获取名为abc数组的第1个和第3个数据:

abc[0]

abc[2]

三、常量

 

常量(Literals)通常用来表示一个固定的值,这个值是不会被改变的。根据JavaScript中的三种基本数据类型:数值类型、逻辑类型和字符串类型,JavaScript中主要有以下4种常量:数值常量、字符串常量、布尔常量、Null常量。

 

1.数值常量

整型常量是程序设计过程中最常使用的一种常量形式,整形常量的数据类型隐含用32个二进制位来表示。JavaScript中允许定义十进制常量,也允许定义八进制常量或十六进制常量。其中:

表示十进制常量时不能以数字“0”或“0x”开头。

表示八进制常量时要用数字“0”开头,数字只能是0~7。

表示十六进制常量要用数字“0x”开头,所用数字只能是0~15,并用A~F或a~f来分别代替10~15这六个数字。

另外,浮点型常量又称为实型常量,一般用于表示需要小数部分的数据。浮点常量可以包含小数点,其表示方法有以下两种:

(1)传统记数法:传统记数法是将一个浮点数分为三个部分,如3.14、10.0。

(2)科学记数法:当一个数字很大或很小的时候,可以使用科学记数法来表示。如1.00E+2、100E-2。

2.字符串常量

字符串是由单引号(')或双引号(")括起来的字符序列。其中字符序列的个数可以是零个或多个。单引号所括起来的字符序列里可以包括双引号,而双引号所括起来的字符序列里也可以包含单引号。字符串常量必须写在一行中,如果换行的话,JavaScript会认为是两个语句而产生错误。

3.布尔常量

布尔常量是比较简单的一种常量,只有两种值,一种是true(真),一种是false(假)。在有些时候,JavaScript也可以把0和1分别看成false和true。布尔常量常用于条件判断语句中。

4.null常量

null是空的意思,在JavaScript语言中表示一个“空”的值,一般null主要用于表示完全没有的对象。如果我们希望仅仅声明一个对象存在,并指定它的名称,而暂时不为对象分配内存空间,这时就可以利用null声明一个“空”对象。

注意:在数值数据中null表示0,在字符串数据中null表示一个空串。

四、变量

变量(variable)是相对常量而言的,常量通常是一个不会改变的固定值,而变量是对应到某个值的一个符号,这个符号中的值可能会随着程序的执行而改变,因此称为“变量”。在很多情况下,变量又称为标识符(identifier)。

当你回忆在学校学过的代数课程时,想到的很可能是:x=5, y=6, z=x+y 等等。你还记得,一个字母可以保存一个值,并且可以使用上面的信息计算出 z 的值是 11。这些字母称为变量,变量可用于保存值 (x=5) 或表达式 (z=x+y)。

1.变量的命名方式

变量可以用来存储数据,JavaScript中是通过变量名来调用这些被存储的数据。变量名必须以ASCII字符或下划线(_)开头,第1个字母不能是数字,但其后可以是数字或其他字母。

2.变量类型

JavaScript与其他程序语言之间有些区别,其他程序语言大多需要为变量指定一个数据类型,例如将一个变量指定为整数型,那么这个变量就只能存储整数型数据,不可以存储浮点型或其他类型的数据。而JavaScript中的变量是没有类型(notype)的,这就意味着在JavaScript中的变量可以是任何一种数据类型。

3.定义变量

在JavaScript中,使用一个变量之前,必须要先定义该变量。只有在定义了一个变量之后,系统才会准备一个内存空间来存储这个变量的值,而程序员可以通过变量名来存储或读取变量的值。在JavaScript中可以使用关键字var来定义一个变量。

var <标识符> [=<值>]

如:var a=5;

var PI=3.14;

var tag;

4.定义变量的注意事项

虽然在JavaScript中定义变量是一件十分简单的事情,但是在定义变量时,有以下几点是需要注意的:

  • 变量对大小写敏感(小写y 和大写Y 是两个不同的变量);
  • 变量必须以字母或下划线开始,其后可以是数字或其他字母;
  • 变量名不能和javascript中的保留字相同
  • 变量最好是先定义后使用

5.变量的值

由于JavaScript的变量不需要指定数据类型,因此变量值可以是任何类型的数据,包括:

数字型(number):整数型或浮点数,如:123或12.3。

布尔型:又称逻辑型(logical),只能是true或false。

字符串型(string):用单引号或双引号括起来的字符串。

空值(null):这是一种特殊的类型,表示没有值,即该变量为空。

未定义值(undefined):表示变量还没有被赋值。

6.变量的有效范围

变量可以根据其有效范围分为全局变量与局部变量两种。其中全局(global)变量从定义开始,到整个JavaScript代码结束为止,都可以使用;而局部(local)变量只有在函数内部里才生效。

7.保留字

在为变量命名时,是不能与JavaScript中的保留字同名。因为这些保留字对于JavaScript来说具有特殊意义,是JavaScript语法中的一部分。事实上,保留字不但不能用作变量名,也不能用作函数名以及循环标签。

五、数组

 

1.定义数组

数组对象用来在单独的变量名中存储一系列的值。通常使用关键词 new 来创建数组对象。下面的代码定义了一个名为 myArray 的数组对象:

var myArray=new Array()

有两种向数组赋值的方法(你可以添加任意多的值,就像你可以定义你需要的任意多的变量一样)。

第一种方法:

var mycars=new Array()

mycars[0]="Saab"

mycars[1]="Volvo"

mycars[2]="BMW"

也可以使用一个整数自变量来控制数组的容量:

var mycars=new Array(3)

mycars[0]="Saab"

mycars[1]="Volvo"

mycars[2]="BMW"

第二种方法:

var mycars=new Array("Saab","Volvo","BMW")

注意:如果你需要在数组内指定数值或者逻辑值,那么变量类型应该是数值变量或者布尔变量,而不是字符变量。

2访问数组

通过指定数组名以及索引号码,你可以访问某个特定的元素。

下面是代码行:

document.write(mycars[0])

下面是输出:

Saab

3修改已有数组中的值

如需修改已有数组中的值,只要向指定下标号添加一个新值即可:

mycars[0]="Opel";

现在,以上代码:

document.write(mycars[0]);

将输出:

Opel

 

六、运算符和表达式

 

表达式与运算符是一个程序的基础,JavaScript中的表达式与运算符和C、C++、Java中的表达式与运算符十分相似,请看下面的介绍。

1.运算符

 

在任何一种语言中,处理数据是必不可少的一个功能,而运算符就是处理数据中所不能缺少的一种符号。

运算符(Operator)是一种用来处理数据的符号,日常算数中所用到的“+”、“-”、“×”、“÷”都属于运算符。在JavaScript中的运算符大多也是由这样一些符号所表示,除此之外,还有一些运算符是使用关键字来表示的。

运算符所连接的是操作数,而操作数也就是变量或常量,变量和常量都有一个数据类型,因此,在使用运算符创建表达式时,一定要注意操作数的数据类型。每一种运算符都要求其作用的操作数符合某种数据类型。

运算符 = 用于给 JavaScript 变量赋值。

算术运算符 + 用于把值加起来。

y=5;

z=2;

x=y+z;

在以上语句执行后,x 的值是 7。

⑴   JavaScript 算术运算符

算术运算符用于执行变量与/或值之间的算术运算。给定 y=5,下面的表格解释了这些算术运算符:

运算符

描述

例子

结果

+

x=y+2

x=7

-

x=y-2

x=3

*

x=y*2

x=10

/

x=y/2

x=2.5

%

求余数 (保留整数)

x=y%2

x=1

++

累加

x=++y

x=6

--

递减

x=--y

x=4

 

⑵   JavaScript 赋值运算符

赋值运算符用于给 JavaScript 变量赋值。给定 x=10 和 y=5,下面的表格解释了赋值运算符:

运算符

例子

等价于

结果

=

x=y

x=5

+=

x+=y

x=x+y

x=15

-=

x-=y

x=x-y

x=5

*=

x*=y

x=x*y

x=50

/=

x/=y

x=x/y

x=2

%=

x%=y

x=x%y

x=0

 

⑶  用于字符串的 + 运算符

+ 运算符用于把文本值或字符串变量加起来(连接起来)。如需把两个或多个字符串变量连接起来,请使用 + 运算符。

txt1="What a very";

txt2="nice day";

txt3=txt1+txt2;

在以上语句执行后,变量 txt3 包含的值是 "What a verynice day"。

要想在两个字符串之间增加空格,需要把空格插入一个字符串之中:

txt1="What a very ";

txt2="nice day";

txt3=txt1+txt2;

或者把空格插入表达式中:

txt1="What a very";

txt2="nice day";

txt3=txt1+" "+txt2;

在以上语句执行后,变量 txt3 包含的值是:"What a very nice day"

 

⑷ 对字符串和数字进行加法运算

请看这些例子:

x=5+5;

document.write(x);

x="5"+"5";

document.write(x);

x=5+"5";

document.write(x);

x="5"+5;

document.write(x);

规则是:如果把数字与字符串相加,结果将成为字符串。

JavaScript 运算符的优先级

优先顺序

运算符

1

.、()、[ ]

2

!、++、typeof、new、void和delete

3

*、/、%

4

+、-

5

<<、>>、>>>

6

<、<=、>、>=

7

= =、!=、= = =、!= =

8

&

9

^

10

|

11

&&

12

||

13

条件运算符

14

=、+=、-=、*=、/=、%=、<<=、>>=、&=、^= 和 |=

15

,(注释:此运算符用于将不同的值分开)

2.表达式

表达式(expression)就是JavaScript中的一个语句,这个语句可以是常量或变量,也可以是由常量、变量加上一些运算符组成的语句。因此,表达式可以分为以下三种:

(1)常量表达式。常量表达式就是常量本身;

(2)变量表达式。变量表达式就是变量的值;

(3)复合表达式。复合表达式是由常量、变量加上一些运算符所组成的表达式。

如:

10

i+5

(i+10)-sum

六、保留字

在为变量命名时,是不能与JavaScript中的保留字同名。因为这些保留字对于JavaScript来说具有特殊意义,是JavaScript语法中的一部分。事实上,保留字不但不能用作变量名,也不能用作函数名以及循环标签。

JavaScript 保留字

abstract

boolean

Break

byte

case

catch

char

Class

const

continue

extends

delete

Do

double

else

for

function

goto

if

implements

import

in

instanceof

int

interface

long

native

new

null

package

private

protected

public

return

short

static

super

switch

synchronized

this

throw

throws

transient

true

try

typeof

var

void

while

with

小结:

JavaScript中的基本数据类型有数字型、字符串型和布尔值三种,除了基本数据类型之外,JavaScript还支持对象、数组、函数、null和undefined数据类型。JavaScript与其他语言一样,也支持常量与变量,不过JavaScript中的变量是无类型的,即可以存储任何一种数据类型的数据。

JavaScript中的运算符比较多,可以分为算术运算符、关系运算符、字符串运算符、赋值运算符、逻辑运算符、逐位运算符和其他运算符七大类。在使用JavaScript中的运算符时,要注意不同运算符的优先次序。在下一章里将会介绍JavaScript中的语句。

 

Javascript语法基础的更多相关文章

  1. JavaScript基础——JavaScript语法基础(笔记)

    JavaScript语法基础(笔记) 1.语言编码 JavaScript语言建立在Unicode字符集基础之上,因此脚本中,用户可以使用双字节的字符命名常量.变量或函数等. [示例] var 我=&q ...

  2. JavaScript语法基础(1)

    1.JavaScript是什么? 1)定义: JavaScript「JS」是一种高级的.动态的. 弱类型的.解释型的计算机编程脚本语言. 2)原理: 3)组成: 3大部分: ◆ ECMAScript: ...

  3. JavaScript语法基础:数组的常用方法详解

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 数组的定义 之前学习的数据类型,只能存储一个值(字符串为一个值).如果我 ...

  4. 了解JavaScript的语法基础,值和变量

    通过JavaScript语法基础学习了解到1.怎么使用js/*通常js的引入和css一样,分为内部,外部和行内引入,执行自上而下,有着先后顺序*/:2.js的语法/*2.1js是用字母,数字.特殊字符 ...

  5. JavaScript编程:javaScript核心基础语法

    1.javaScript核心基础语法: javaScript技术体系包含了5个内容:          1.核心语言定义:          2.原生对象和雷子对象:          3.浏览器对象 ...

  6. 读书笔记(06) - 语法基础 - JavaScript高级程序设计

    写在开头 本篇是小红书笔记的第六篇,也许你会奇怪第六篇笔记才写语法基础,笔者是不是穿越了. 答案当然是没有,笔者在此分享自己的阅读心得,不少人翻书都是从头开始,结果永远就只在前几章. 对此,笔者换了随 ...

  7. JavaScript之基础语法

    第一章 javascript语法 一, js代码的引入 方式一:在html页写js代码 <script> alert('hello,world') </script> 方式二: ...

  8. 1.JavaScript 教程:基础语法

    简介: JavaScript web 开发人员必须学习的 3 门语言中的一门: HTML 定义了网页的内容 CSS 描述了网页的布局 JavaScript 网页的行为 用法: (1)HTML 中的脚本 ...

  9. JavaScript RegExp 基础详谈

    前言: 正则对于一个码农来说是最基础的了,而且在博客园中,发表关于讲解正则表达式的技术文章,更是数不胜数,各有各的优点,但是就是这种很基础的东西,如果我们不去真正仔细研究.学习.掌握,而是抱着需要的时 ...

随机推荐

  1. 最近新出的C++右值引用的意思

    看了一下这种方法的介绍,个人感觉,右值引用,更像人类的思想了,有些将编译前与编译后结合紧密的感觉. 左值引用是变量名的别名,右值引用是值的别名,也就是不将值赋给一个变量名所在的地址,直接将值所在的初始 ...

  2. php 自定义求数组差集,效率比自带的array_diff函数还要快(转)

    <?phpfunction array_different($array_1, $array_2) { $array_2 = array_flip($array_2); //将数组键值调换 fo ...

  3. Gradle Import Wizard--官方文档

    Last updated and checked to work with version 3.0.0 of the tools This tutorial will take you through ...

  4. apk代码的破解

    方法一:dexdump方法(效果很不好,推荐指数*) 1.搜索到dexdump.exe所在目录: 2.将apk包中的**.dex文件存放到上面目录: 3.命令行中进入上面目录,执行:dexdump   ...

  5. 码表 ASCII Unicode GBK UTF-8

    2017-1-3 [ASCII]一个字节(7位,128个字符,2个16进制) 不包含中文 ASCII(American Standard Code for Information Interchang ...

  6. 通过Unity依赖注入

    前言 Unity容器的思想起始于我在为Web Client Sofitware Factory项目工作的时候,微软的patterns&practices团队已经使用依赖注入的概念好几年了在那时 ...

  7. 动态插入图片到 svg 中

    动态插入图片到 svg 中使用 createElementNS 来创建svg标签,通过setAttributeNS 来设置属性, 要注意两点,创建的时候要有'http://www.w3.org/200 ...

  8. Python datetime time 常用操作

    测试版本: Python 2.7 获取当前时间的两种方法 import datetime,time now = time.strftime("%Y-%m-%d %H:%M:%S") ...

  9. Android学习----五大布局

    1.LinearLayout 线性布局 android:orientation="horizontal" 制定线性布局的排列方式 水平 horizontal 垂直 vertical ...

  10. YesFInder - Web File Manager 网页文件管理系统

    开发原由: 原来想找一下实现可视化图片上传程序,先找了ckfinder,发现居然是收费的,而且用起来也不顺手,于是想能不能自己写一个.想到这就立即动手,花2天时间完成初步功能,然后再花了3天完善.目前 ...