第二章   avaScript核心语法

一.变量的声明和赋值

JavaScript是一种弱类型语言,没有明确的数据类型,也就是在声明变量时不需要指定数据类型,变量的类型由赋给变量的值决定。

在JavaScript中,变量是使用关键字var声明的,语法:

var 合法的变量名;

JavaScript的变量命名规则和Java命名规则相同。

JavaScript区分大小写,所以大小写不同的变量名表示不同的变量。

另外,由于JavaScript是一种弱类型语言,因此允许不声明变量而直接使用,系统将会自动声明该变量。例如:x=88;//没有声明x直接使用。

二.数据类型

1.    undefined(未定义类型)

undefined类型只有一个值,即undefined。当声明的变量未初始化时,该变量的默认值是undefined,例如:var  widtd;

2.    null(空类型)

null类型只有一个值,即null。表示“什么都没有”,用来检测某个变量是否被赋值。

值undefined实际是值null派生出来的,因此javaScript把它们定义为相等的。例如:

Alert(null==undefined);  //返回者为true

尽管这两个值相等,但是它们的含义不同;

Undefined表示声明了变量但未赋值;

Null则表示给该变量赋了一个空值;

3.    number(数值类型)

javaScript中定义的最特殊的类型是number类型,这种类型即表示32位的整数,又可以表示64位的浮点数.

整数也可以表示为八进制或十六进制,八进制首数字必须是0,其后是(0~8);十六进制的手数字也必须是0,其后是(0~9)(A~F)。

另外一个特殊值NaN(Not a Number)表示非数字,它是number类型,例如:

Typeof(NaN);             //返回者位number

4.    String(字符串类型)

在javascript中,字符是一组被引号(单引号或双引号)括起来的文本。

与java不同,javaScript不对“字符”或“字符串”加以区别,因此var a=”a”也是字符串类型。

和Java相同,javaScript中String也是一种对象,它有一个length属性,表示字符串的长度(包括空格等)。

String 对象常用的方法

方法

描述

indexOf(str,index)

查找某个指定的字符串str在字符串中首次出现的位置

charAt(index)

返回指定位置index的字符

toLowerCase()

把字符串转为小写

toUpperCase()

把字符串转换为大写

Substring(index1,index2)

返回位于索引index1和index2之间的字符串,并且包括索引index1对应的字符,不包括index2对应的字符

Split(str)

将字符串以str为分割单位分割成字符串数组,str=””则分割成单个字符

5.    boolean(布尔类型)

boolean类型数据称为布尔型数据或逻辑型数据,boolean类型是ECMAScript中常用的类型之一,它只有两个值:true和false

6.    typeof

ECMAScript提供了typeof运算符来判断一个值或变量究竟属于哪种数据类型。

语法:typeof(变量或值);

其返回的值如下:

1)  undefined

2)  number

3)  String

4)  Boolean

5)  Object:如果变量是null类型,或者变量是一种引用类型,如对象,数组,函数,则返回object

三.数组

和java一样,javaScript中的数组也需要先创建,赋值,再访问数组元素,并通过数组的一些方法或属性对数组元素进行处理。

  1. 创建数组

语法:var  数组名称=new Array(size);

例如:var  fruit=new Array(5);表示创建了一个名称为fruit,有5个元素的数组。

  1. 为数组元素赋值

1)  var  fruit=new  Array(“apple”,”pear”,”orange”,”peach”);

2)  var  fruit=new  Array(4);

fruit[0]=”apple”;

fruit[1]=”pear”;

fruit[2]=”orange”;

fruit[3]=”peach”;

3)var  fruit=[“apple”,”pear”,”orange”,”peach”];

  1. 访问数组

可以通过数组的名称+下标直接访问数组的元素,访问数组的表示形式:数组名[下标]。例如fruit[0]标识访问数组中的第一个元素,fruit数数组名,0表示下标。

  1. 数组中常用的属性和方法

类别

名称

描述

属性

Length

设置或返回数组中元素的数目,为整形

方法

Join()

把数组的所有元素放入一个字符串,通过一个分割符进行分隔

sort()

对象数组排序

Push()

向数组末位添加一个或多个元素,并返回新的长度

1)  Length

如果在创建数组时就指定了数组的size值,那么无论数组中是否存储了实际数据,该数组的length值都是这个指定的长度值size。例如,var  fruit=new  Array(4);那么fruit.length=4。

2)  join(分隔符)

例:

var  fruit=”apple,orange,peach,banana”;//创建一个字符串

var  arrlist=fruit.split(“,”);//定义一个数组接收 字符串fruit以”,”分割的元素

var  str=arrlist.join(“-”);//用”-”符号把数组中元素连接在一个字符串中

结果:apple – orange – peach -banana

四.运算符号

类别

运算符号

算数运算符

+、-、*、/、%、++、--

比较运算符

>、<、>=、<=、==、!=、===、!==

逻辑运算符

&&、||、!

赋值运算符

=、+=、-=

===表示恒等,要求数值类型和值都要相等,==要求值相等

!===表示不恒等,取反===

五.逻辑控制语句

在javaScript中,逻辑控制语句用于控制程序的执行顺序,同java一样,也分为两类:

  1. 条件结构

1)if结构

2)switch结构

  1. 循环结构

1)  for循环

2)  while循环

3)  do-while循环

4)  for-in循环

语法:

for(变量 in  对象){

}

例:var  fruit=[“apple”,”orange”,”peach”,”bannaa”];

for(var  i  in  fruit){

document.write(fruit[i]+”<br/>”);

}

5)  中断循环

break;可以立即退出整个程序

continue;只退出当前的循环,根据条件判断下一次循环

六.注释

当行注释:  //

多行注释:/*注释内容*/

七.关键字和保留字

关键字(首字母全部小写)

Break

Case

Catch

Continue

Default

Delete

Do

Else

Finally

For

Function

If

In

Instanceof

New

Return

Switch

This

Throw

Try

Typeof

Var

Void

While

With

保留字(首字母全部小写)

Abstract

Boolean

Byte

Char

class

Const

Debugger

Double

Enum

Export

Extents

Final

Float

Goto

Implements

Import

Int

Interface

Long

Native

Package

Private

Protected

Public

Short

Static

Super

Synchronized

Throws

Transient

volatile

八.常用的输入/输出

  1. alert( )警告

语法: alert(“提示信息”);

创建一个特殊的对话框,对话框带有一个字符串和“确定”按钮

  1. prompt( )提示

语法:prompt(“提示信息”,”输入框的默认信息或空的输入框”);

Prompt()方法第一个参数值显示在对话框上,通常是一些提示信息,第二个输入框出现在用户输入的文本框中,有“确定”和“取消”两个按钮,“取消”则返回为null,“确定”则返回一个字符串型数据。

九.语法约定

  1. 大小写的区分

1)  javascript的关键字;如for和if,永远都是小写的

2)  内置对象,如Math和Date以大写字母开头

3)  对象的名称通常小写,遵循骆驼命名法。

  1. 变量、对象和函数的名称

与java命名规范相同,“字下美…”

  1. 分号

Javascript允许开发者自行决定是否以分号结束一行代码,如果没有分号,javascript就将行代码的末尾看作该语句的结尾。

为了代码的规范,不推荐不使用分号结尾。

十.调试

打开chrome浏览器,按F12进入调试:

>1:Elements:用于查看和编辑当前页面中的HTML和CSS元素.

>2:Console:用于显示脚本中所输出的调试信息,或运行测试脚本等.

>3:Sources:用于查看和调试当前页面所加载的脚本的源文件.

>4:Network:用于查看HTTP请求的详细信息,如请求,响应及返回内容等。

>5:Timeline:用于查看脚本的执行时间,页面元素渲染时间等信息.

>6:Profiles:用于查看CPU执行时间与内存占用等信息.

>7:Resource:用于查看当前页面所请求的资源文件,如HTML,CSS样式等。

>8:Audits:用于优化前端页面,加速网页加载速度等.

其次,通过alert()方法输出变量值也可以进行调试.

十一.常用的系统函数

  1. parseInt()

parseInt()函数可以解析一个字符串,并返回一个整数。如果第一个字符不是数值类型,则返回NaN,表示不是数组类型,如中间遇到非数值字符,则会省略后面的字符,返回前面的数值。

  1. parseFloat()

parseFloat()函数可以解析一个字符串,并返回一个浮点数。方法与parseInt()相似。如果第一个字符不是数值类型,则返回NaN,表示不是数组类型,如中间遇到非数值字符,则会省略后面的字符,返回前面的数值。

例: var a=parseFloat(36s22.0);//返回值36.0

  1. isNaN()

isNaN()函数用于检查其参数是否非数字,如果不是数字则返回true,如果是数字返回flase。

例:var  flag=isNaN(“12.5s”);  //返回为true,区别与parseInt()和parsrFloat()函数的转换,isNaN()函数不会省略后面的字母。

十二.自定义函数

1.定义函数

在javascript中,自定义函数是由关键字function、函数名、一组参数及置于括号中的待执行的javascript语句组成的,语法:

Function  函数名(参数一,参数二…){

//javascript语句;

[return  返回值]

Function是定义函数的关键字,必须有.

2.调用函数

要执行一个函数,必须调用这个函数,当调用函数时,必须指定函数名及其后面的参数(有参函数)。函数的调用一般和元素的事件结合使用。

语法:

时间名=”函数名([参数])”;

十三.变量的作用域

与java中的变量一样,在javascript中,根据变量作用范围不同,可分为全局变量和局部变量。

全局变量是在所有函数之外的脚本中声明的变量。

局部变量是在函数内声明的变量。

十四.事件

名称

说明

onload

一个页面或一副图像完成加载

onlick

鼠标单击某个对象

onmouseover

鼠标移动到某个元素上

onkeydown

某个键盘按键被按下

onchange

域的内容被改变

例:

<!DOCTYPE HTML>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title> 加载事件 </title>

<script type="text/javascript">

function message(){

alert("加载中,请稍等…"); }

</script>

</head>

<body onLoad="message()">

欢迎学习JavaScript。

</body>

</html>

注:

onload 事件会在页面或图像加载完成后立即发生。

  语法

  onload="SomeJavaScriptCode"参数 描述

  SomeJavaScriptCode 必需。规定该事件发生时执行的 JavaScript。

  支持该事件的 HTML 标签:

  <body>, <frame>, <frameset>,
<iframe>, <img>, <link>, <script>

  支持该事件的 JavaScript 对象:

  image, layer, window

第二章 JavaScript核心语法的更多相关文章

  1. JavaScript交互式网页设计 • 【第1章 JavaScript 基本语法】

    全部章节   >>>> 本章目录 1.1 JavaScript 概述 1.1.1 JavaScript 简介 1.1.2 JavaScript 的概念和执行原理 1.1.3 J ...

  2. java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...

  3. [书籍翻译] 《JavaScript并发编程》 第二章 JavaScript运行模型

    本文是我翻译<JavaScript Concurrency>书籍的第二章 JavaScript运行模型,该书主要以Promises.Generator.Web workers等技术来讲解J ...

  4. 第二章 JavaScript文档(上)

    JavaScript 1.JavaScript简介 起源 在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成.Netscape在最初将其脚本语言命名 ...

  5. JavaScript DOM编程艺术学习笔记-第二章JavaScript语法

    一.JavaScript示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  6. 第二章 JavaScript语法·

    javascript代码放置位置: 1.将代码放置在文档<head>标签中的<script>标签之间: 2.将代码存为一个扩展名为.js的独立文件.典型做法是在文档的<h ...

  7. (转)JAVA AJAX教程第二章-JAVASCRIPT基础知识

    开篇:JAVASCRIPT是AJAX技术中不可或缺的一部分,所以想学好AJAX以及现在流行的AJAX框架,学好JAVASCRIPT是最重要的.这章我给大家整理了一些JAVASCRIPT的基础知识.常用 ...

  8. JQuery制作网页—— 第二章 JavaScript操作BOM对象

    1.window对象: 浏览器对象模型(BOM)是javascript的组成之一, 它提供了独立与浏览器窗口进行交换的对象,使用浏览器对象模型可以实现与HTML的交互. 它的作用是将相关的元素组织包装 ...

  9. C#高级编程笔记之第二章:核心C#

    变量的初始化和作用域 C#的预定义数据类型 流控制 枚举 名称空间 预处理命令 C#编程的推荐规则和约定 变量的初始化和作用域 初始化 C#有两个方法可以一确保变量在使用前进行了初始化: 变量是字段, ...

随机推荐

  1. 关系型数据库工作原理-数据库整体框架(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>.原文链接:http://coding-geek.com/how-data ...

  2. 在开启kerberos 后,hbase存在数据命名空间的问题(解决方案)

    用hbase的超级用户 su - hbasekinit -kt /etc/security/keytabs/hbase.headless.keytab hbase-bigdata@STARYEA.CO ...

  3. python xlsxwriter库生成图表的应用

    xlsxwriter可能用过的人并不是很多,不过使用后就会感觉,他的功能让你叹服,除了可以按要求生成你所需要的excel外 还可以加上很形象的各种图,比如柱状图.饼图.折线图等. 请看本人生成的: 这 ...

  4. WordPress非插件实现评论回复邮件提醒通知

    要想在第一时间知道有人在自己博客留言,然后在第一时间回复留言再第一时间通知邮件者,这就需要WordPress博客拥有邮件通知功能. 先看效果: 评论邮件通知的方法: 1.所有回复都发送邮件通知 登陆博 ...

  5. 第一周Python讲课内容--日记

    1.python的发展史,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年...... 2.第一个helloword程序的开始 3.变量的含义,赋值传参数的作 ...

  6. vue.js设置、获取、删除cookie

    项目需要前端获取后台返回的cookie,并以此作判断.我是在main.js入口文件下使用的 具体代码: new Vue({ el: '#app', router, template: '<App ...

  7. 阿里云手动搭建k8s搭建中遇到的问题解决(持续更新)

    ETCD搭建 systemd启动etcd服务的时候出现错误:Failed at step CHDIR spawning /usr/bin/etcd: No such file or directory ...

  8. 依赖layui form模块 复选框tree插件(拓展可根据属性单选还是多选,数据反选)

    近些天接的项目用的是layui.以前没用过,踩了很多坑,坑就不多说了,直接说layui的tree.因为自带的tree不满足需求,所以在论坛.博客上找了很久终于找到了可以复选的的插件,原文地址:http ...

  9. postman 简单教程-实现简单的接口测试

    最近开始做接口测试了,因为公司电脑刚好有postman,于是就用postman来做接口测试,哈哈哈哈,...postman 功能蛮强大的,还比较好用,下面说下postman如何来测试接口 1.下载po ...

  10. JDK中的Timer和TimerTask详解

    http://www.cnblogs.com/lingiu/p/3782813.html