JavaScript 第二课 JavaScript语法

本章内容:
  • 语句
  • 变量和数组
  • 操作符
  • 条件语句和循环语句
  • 函数与对象

-------------------------------------------------------------

准备:

编写JavaScript脚本只需要一个普通地文本编辑器和一个Web浏览器就足啦。

用JavaScript编写的代码必须通过HTML/XHTML文档才能执行,有两种方式可以做到这点。

1、第一种是将JavaScript代码放到文旦<head>标签中的<script>标签之间:

<!DOCTYPE html>
<html lang = "en">
<head><meta charset = "utf-8"/><title>example</title><script>JavaScript goes here</script>
</head>
<body>Mark-up goes here...
</body></html>

2、一种更好的方式是将JavaScript代码存为一个扩展名为.js的独立文件。典型的做法是在文档的<head>部分放一个<script>标签

并把它的src属性指向该文件:

<!DOCTYPE html>
<html lang = "en">
<head><meta charset = "utf-8"/><title>example</title><script src = "file.js"></script>
</head>
<body>Mark-up goes here...
</body></html>

3、但是最好的做法是把<script>标签放在HTML文档的最后,</body>标签之前:

<!DOCTYPE html>
<html lang = "en">
<head><meta charset = "utf-8"/><title>example</title></head>
<body>Mark-up goes here...<script src = "file.js"></script>
</body></html>
这样可以更快的加载页面。why?

程序设计语言分为:解释型和编译型两大类。

java或c++等语言需要一个编译器(compile)。编译器是一种程序,能够把用Java等高级语言编写出来的源代码翻译为直接在计算机上执行的文件。

解释型程序设计语言不需要编译器----它们仅需要解释器。对于JavaScript语言,在互联网环境下,Web浏览器负责完成有关的解释和执行工作。浏览器中的JavaScript解释器将直接读入源代码并执行。浏览器中如果没有解释器,JavaScript代码就无法执行。

编译型程序设计语言(Java、c)解释性程序设计语言(JavaScript、Python)
需要编译器(Compiler)编译器是一种程序,能够把用Java等高级语言编写出来的源代码翻译为直接在计算机上执行的文件。不需要编译器,仅需要解释器,Web浏览器负责完成有关的解释和执行工作。浏览器中的JavaScript解释器将直接读入源代码并执行。
在代码编译阶段可以发现错误等到解释器执行到有关代码时才发现
速度快,可移植性好 
  

在语法方面,JavaScript与Java和C++极为相似。

注释:在HTML文档中,使用<!-这是JavaScript中的注释->方式来进行注释。在JavaScript使用//或/* */进行注释。

变量:提前声明变量是一种良好的编程习惯。例如:var mood;  (var 是一个关键字)

变量名的要求:区分大小写,不允许包含空格或标点符号(美元符号"$"除外)。允许包含字母、数字、美元符号和下划线(但第一个数字不允许是数字)。可采取驼峰式命名法(camel case)。

数据类型:

必须明确数据类型声明的语言称为强类型(strong typed)语言。JavaScript不需要进行类型声明,因此他是一种弱类型(weakly typed) 语言。这意味我们可以在任何阶段改变变量的数据类型。就是说对于一个变量,JavasScript并不在意它是一个字符串还是一个数或是一个布尔值。

JavaScript数据类型分为:字符串、数值、布尔值

1、字符串:包含零个或多个字符组成,字符包括(不限于)字母、数字、标点符号和空格。字符串必须包在引号里,可以是单引号或是双引号,期间可能会使用到转义字符(反斜线\),反斜线并不是字符串的一部分。一个好的编程习惯是使用双引号来保住字符串。

2、数值:浮点、整数、负数、、

3、布尔值:两个可选值、true或者是false。

从某种意义上将,计算机设计程序就是与布尔值打交道,所有的电子电路只能识别和使用布尔数据:电路中有还是没有电流。

布尔值不是字符串。

数组:


字符串、数值还是布尔值都是标量(scalar),如果某个变量是标量,它在任意时刻就只能有一个值。

数组可以用一个变量来存储一组值,在JavaScript中,数组可以用关键字Array声明。声明数组的同时可以指定数组的长度(length)例如:var beatles = Array(4);

另外也可以不声明数组的长度,例如:var  beatles = Array();

我们甚至用不着明确我们是在创建数组。例如: var beatles = ["John","Paul","George",“Ringo”];


对象

数组是使用一个名字表示一组值,对象的每个值都是对象的属性。例如:

var lennon = Object();

lennon.name = "Jonh";

lennon.year = "1940";

lennon.living = "false";

创建对象使用Object关键字。它不使用方括号和下标来获取元素,而是像任何JavaScript对象一样,使用点号来获取属性。

创建对象还有更简洁的语法:就是花括号语法:

{propertyName:value,prpertyName:value}

lennon对象也可以写成下面这样: var lennon = {name:"John",living:false};

对象是一种非常重要的数据类型,对象是自包含的数据集合,包含在对象里的数据通过两种形式访问:属性(property)和方法(method):

属性就是隶属于某个特定对象才能调用的变量;

方法是只有某个特定对象才能调用的函数。对象就是由一些属性和方法组合在一起而构成的一个数据实体。

在JavaScript里,属性和方法都使用“点”语法来访问:

Object.property

Object.method()

JavaScript中提供了一系列预先定义好的对象,这些可以拿来用的对象就称为内建对象(native object)。

数组就是一个内建对象,当我们使用new关键字去初始化一个数组时,其实就是在创建一个Array对象的新实例:

var beatles = new Array();

我们可以使用Array对象的length属性来获得数组的长度:beatles.length;

Array对象只是诸多JavaScript内建对象的一种,其他例子包括Math对象和Date对象,它们分别提供了非常有用的方法供人们处理数值和日期值,例如:Math对象的round方法可以把十进制数值舍入为一个与之最接近的整数:

var num = 7.561;

var num = Math.round(num);

alert(num);

Data对象可以用来存储和检索于特定日期和时间有关的信息。创建Date对象的新实例时,JavaScript解释器将自动地使用当前日期和时间对它进行初始化:

var current_data = new Date();

Date对象提供了getDay()、gethHours()、getMonth()等一系列方法;以供人们用来检索于特定日期有关的信息。例如:

getDay()方法可以告诉我们给定日期是星期几:

var today = current_data.getDay();

宿主对象

除了内建对象,还可以在JavaScript脚本里使用一些已经预先定义好的其他对象。这些对象不是由JavaScript语言本身而是由它的运行环境提供的。具体到Web应用,这个环境就是浏览器。由浏览器提供的预定义对象称为宿主对象(host object)

宿主对象包括Form、Image和Element 等。我们可以通过这些对象去获取网页上表单、图像和各种表单元素等信息。

另一种宿主对象也是用来获得网页上的任何一个元素的信息,就是document对象。







本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/274084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

和菜鸟一起学linux之DBUS基础学习记录

转自&#xff1a;http://blog.csdn.net/eastmoon502136/article/details/10044993 D-Bus三层架构 D-Bus是一个为应用程序间通信的消息总线系统, 用于进程之间的通信。它是个3层架构的IPC 系统&#xff0c;包括&#xff1a; 1、函数库libdbus &#xff0c;用于两个应用程序互…

Android 第二十课 广播机制(大喇叭)----发送自定义广播(包括发送标准广播和发送有序广播)

广播分为两种类型&#xff1a;标准广播和有序广播 我们来看一下具体这两者的具体区别&#xff1a; 1、发送标准广播 我们需要先定义一个广播接收器来准备接收此广播才行&#xff0c;否则也是白发。 新建一个MyBroadcastReceiver,代码如下&#xff1a; package com.example.broa…

八大排序算法

概述 排序有内部排序和外部排序&#xff0c;内部排序是数据记录在内存中进行排序&#xff0c;而外部排序是因排序的数据很大&#xff0c;一次不能容纳全部的排序记录&#xff0c;在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 当n较大&#xff0c;则应采用…

需求?

1 需求怎样描述清楚&#xff1f; 利用用例技术&#xff0c;一般这里指的是系统用例&#xff1b;包括以下几个内容&#xff1a; 用例视图 系统的功能描述&#xff1b; 用例规约 规定了用户和系统的交互过程&#xff1b;用户如何使用系统&#xff1b;用户如何交互&#xff0c;以及…

Android 第二十一课 RecyclerView简单的应用之编写“精美”的聊天页面

1、由于我们会使用到RecyclerView&#xff0c;因此首先需要在app/build.gradle当中添加依赖库。如下&#xff1a; apply plugin: com.android.application .... dependencies {....compile com.android.support:recyclerview-v7:26.1.0 } 2、然后开始编写主页面&#xff0c;修该…

VS 2008 生成操作中各个选项的差别

近日&#xff0c;在编译C#项目时经常发现有些时候明明代码没错&#xff0c;但就是编译不过&#xff0c;只有选择重新编译或者清理再编译才会不出错&#xff0c;本着求学的态度&#xff0c;搜罗了下VS2008IDE中生成操作的种类以及差别&#xff0c;整理如下&#xff1a;内容(Cont…

dbus-python指南

菜鸟学dbus-python&#xff0c;翻译dbus-python指南&#xff0c;错误之处请在所难免&#xff0c;请诸位不吝赐教&#xff0c;多多指正&#xff01;查看英文原版请点这里。 连接总线Connecting to the Bus方法调用Making method calls代理对象proxy objects接口和方法Interfaces…

JavaScript 第三课 DOM

主要内容&#xff1a; 节点5个常用的DOM方法&#xff1a;getElementById、getElementByTagname、getElementByClassName、getAttribute和setAttribute详细内容: 1、文档&#xff1a;DOM中的“D”如果没有document(文档),DOM也就无从谈起。当创建了一个网页并把它加载到Web浏览器…

源码编译安装Nginx

1.源码下载 Nginx在github上有一个只读源码库&#xff0c;我获取的源码方式为&#xff1a; git clone https://github.com/nginx/nginx.git 2.configure 我下载源码的时候&#xff0c;github上的源码的目录结构为: auto, conf, contrib, docs, misc, src共6个目录。src目录是…

SOAP协议初级指南(2)

目前的技术存在的问题&#xff1f;   尽管DCOM和IIOP都是固定的协议&#xff0c;业界还没有完全转向其中任何一个协议。没有融合的部分原因是文化的问题所致。而且在当一些组织试图标准化一个或另一个协议的时候&#xff0c;两个协议的技术适用性就被提出质疑。传统上认为DC…

JavaScript 第四课 案例研究:JavaScript图片库

主要内容&#xff1a;编写一个优秀的标记文件编写一个JavaScript函数以显示用户想要查看的内容由标记出发函数调用使用几个新方法扩展这个JavaScript函数 学习过DOM&#xff0c;我们用JavaScript和DOM去建立一个图片库。最好的办法是什么呢&#xff1f; 利用JavaScript来建立图…

windows下mongodb安装与使用整理

一、首先安装mongodb 1.下载地址&#xff1a;http://www.mongodb.org/downloads 2.解压缩到自己想要安装的目录&#xff0c;比如d:\mongodb 3.创建文件夹d:\mongodb\data\db、d:\mongodb\data\log&#xff0c;分别用来安装db和日志文件&#xff0c;在log文件夹下创建一个日志文…

可变参数列表(va_list,va_arg,va_copy,va_start,va_end)

本文转自:http://blog.csdn.net/costa100/article/details/5787068 va_list arg_ptr&#xff1a;定义一个指向个数可变的参数列表指针&#xff1b;      va_start(arg_ptr, argN)&#xff1a;使参数列表指针arg_ptr指向函数参数列表中的第一个可选参数&#xff0c;说明&…

src与href属性的区别

src和href之间存在区别&#xff0c;能混淆使用。src用于替换当前元素&#xff0c;href用于在当前文档和引用资源之间确立联系。 src是source的缩写&#xff0c;指向外部资源的位置&#xff0c;指向的内容将会嵌入到文档中当前标签所在位置&#xff1b;在请求src资源时会将其指向…

USACO4.12Beef McNuggets(背包+数论)

昨天晚上写的一题 结果USACO一直挂中 今天交了下 有一点点的数论知识 背包很好想 就是不好确定上界 官方题解&#xff1a; 这是一个背包问题。一般使用动态规划求解。 一种具体的实现是&#xff1a;用一个线性表储存所有的节点是否可以相加得到的状态&#xff0c;然后每次可以…

Java 循环语句中 break,continue,return有什么区别?

break 结束循环&#xff0c;跳出循环体,进行后面的程序;continue 结束本次循环&#xff0c;进行下次循环;return 跳出循环体所在的方法&#xff0c;相当于结束该方法; 例子&#xff1a; public class whiletrueTest{public static void main(String[] args) {heihei();haha();…

Epoll模型详解

转自http://blog.163.com/huchengsz126/blog/static/73483745201181824629285/ Linux 2.6内核中提高网络I/O性能的新方法-epoll I/O多路复用技术在比较多的TCP网络服务器中有使用&#xff0c;即比较多的用到select函数。 1、为什么select落后 首先&#xff0c;在Linux内核中…

运算放大器单电源应用中的使用齐纳二极管偏置方法

运算放大器单电源应用中的偏置方法除了使用大电阻使运放输出达到电源电压的一半外&#xff0c;还有使用齐纳二极管&#xff08;稳压管&#xff09;方法也能得到达到应用目的。 下面就推荐几个齐纳二极管&#xff08;分别对应着电源电压是15V,12V&#xff0c;9V;5V&#xff09; …

Java——demo之仿ATM操作

java.util.Scanner类&#xff0c;这是一个用于扫描输入文本的新的实用程序。其中nextInt()获取String型&#xff0c;而next()获取int、double型。这是一个仿ATM的小程序。 实现条件 1.登陆界面&#xff0c;2.三次登陆机会&#xff0c;登陆成功进入登陆菜单&#xff0c;3&#x…

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算

本文转自&#xff1a;http://www.cnblogs.com/yaozhongxiao/archive/2014/07/14/3842908.html 一、基本概念 dip &#xff1a; Density independent pixels &#xff0c;设备无关像素。 dp &#xff1a;就是dip px &#xff1a; 像素 dpi &#xf…