JavaScript提供脚本语言的编程与C++非常相似 它只是去掉了C语言中有关指针等容易产生的错误 并提供了功能强大的类库 对于已经具备C++或C语言的人来说 学习JavaScript脚本语言是一件非常轻松愉快的事
一 JavaScript代码的加入
JavaScript的脚本包括在HTML中 它成为HTML文档的一部分 与HTML标识相结合 构成了一个功能强大的Internet网上编程语言 可以直接将JavaScript脚本加入文档
<Script Language = JavaScript >JavaScript语言代码 JavaScript 语言代码</Script>
说明 通过标识<Script></Script>指明JavaScript脚本源代码将放入其间 通过属性Language = JavaScript 说明标识中是使用的何种语言 这里是JavaScript语言 表示在JavaScript中使用的语言
下面是将JavaScript脚本加入Web文档中的例子:l<HTML><Head><Script Language = JavaScript >document Write( 这是赛迪网互动学校 )document close()</Script></Head></HTML>
在浏览器的窗口中调用l 则显示 这是赛迪网互动学校 字串 见图 所示
图 说明: Document write()是文档对象的输出函数 其功能是将括号中的字符或变量值输出到窗口 document close()是将输出关闭 可将<Script></Script>标识放入head></Head>或<Body></Body>之间 将JavaScript标识放置<Head></Head>在头部之间 使之在主页和其余部分代码之前装载 从而可使代码的功能更强大 可以将JavaScript标识放置在<Body></Body>主体之间以实现某些部分动态地创建文档
二 基本数据类型
JavaScript脚本语言同其它语言一样 有它自身的基本数据类型 表达式和算术运算符以及程序的基本框架结构 JavaScript提供了四种基本的数据类型用来处理数字和文字 而变量提供存放信息的地方 表达式则可以完成较复杂的信息处理
基本数据类型
在JavaScript中四种基本的数据类型 数值(整数和实数) 字符串型(用 号或 括起来的字符或数值) 布尔型(使True或False表示)和空值 在JavaScript的基本类型中的数据可以是常量 也可以变量 由于JavaScript采用弱类型的形式 因而一个数据的变量或常量不必首先作声明 而是在使用或赋值时确定其数据的类型的 当然也可以先声明该数据的类型 它是通过在赋值时自动说明其数据类型的
常量 整型常量JavaScript的常量通常又称字面常量 它是不能改变的数据 其整型常量可以使用十六进制 八进制和十进制表示其值 实型常量实型常量是由整数部分加小数部分表示 如 可以使用科学或标准方法表示 E e 等
布尔值
布尔常量只有两种状态 True或False 它主要用来说明或代表一种状态或标志 以说明操作流程 它与C++是不一样的 C++可以用1或0表示其状态 而JavaScript只能用True或False表示其状态
字符型常量
使用单引号( )或双引号( )括起来的一个或几个字符 如 This is a book of JavaScript ewrt 等 空值JavaScript中有一个空值null 表示什么也没有 如试图引用没有定义的变量 则返回一个Null值 特殊字符同C语言一样 JavaScript中同样以有些以反斜杠(/)开头的不可显示的特殊字符 通常称为控制字符 变量
变量的主要作用是存取数据 提供存放信息的容器 对于变量必须明确变量的命名 变量的类型 变量的声明及其变量的作用域 变量的命名JavaScript中的变量命名同其计算机语言非常相似 这里要注意以下两点 A 必须是一个有效的变量 即变量以字母开头 中间可以出现数字如test text 等 除下划线(-)作为连字符外 变量名称不能有空格 (+) (-) ( )或其它符号 B 不能使用JavaScript中的关键字作为变量 在JavaScript中定义了40多个类键字 这些关键是JavaScript内部使用的 不能作为变量的名称 如Var int double true不能作为变量的名称 在对变量命名时 最好把变量的意义与其代表的意思对应起来 以免出现错误
变量的类型
在JavaScript中 变量可以用命令Var作声明:var mytest该例子定义了一个mytest变量 但没有赋予它的值 Var mytest= This is a book 该例子定义了一个mytest变量 同时赋予了它的值 在JavaScript中 变量以可以不作声明 而在使用时再根据数据的类型来确其变量的类型 如 x= y= xy= True cost= 等 其中x整数 y为字符串 xy为布尔型 cost为实型 变量的声明及其作用域JavaScript变量可以在使用前先作声明 并可赋值 通过使用var关键字对变量作声明 对变量作声明的最大好处就是能及时发现代码中的错误 因为JavaScript是采用动态编译的 而动态编译是不易发现代码中的错误 特别是变量命名的方面 对于变量还有一个重要性──那就是变量的作用域 在JavaScript中同样有全局变量和局部变量 全局变量是定义在所有函数体之外 其作用范围是整个函数 而局部变量是定义在函数体之内 只对其该函数是可见的 而对其它函数则是不可见的 三 表达式和运算符
1 表达式
在定义完变量后 就可以对它们进行赋值 改变 计算等一系列操作 这一过程通常又叫称一个叫表达式来完成 可以说它是变量 常量 布尔及运算符的集合 因此表达式可以分为算术表述式 字串表达式 赋值表达式以及布尔表达式等
2 运算符
运算符完成操作的一系列符号 在JavaScript中有算术运算符 如+ * /等 有比较运算符如!= ==等有逻辑布尔运算符如!(取反) | ||有字串运算如+ +=等 在JavaScript主要有双目运算符和单目运算符 其双目运算符由下列组成 操作数1 运算符 操作数2即由两个操作数和一个运算符组成 如 + This + that 等 单目运算符 只需一个操作数 其运算符可在前或后 (1)算术运算符JavaScript中的算术运算符有单目运算符和双目运算符 双目运算符 +(加) (减) *(乘) /(除) %(取模) |(按位或) &(按位与) <<(左移) >>(右移) >>>(右移 零填充) 单目运算符 (取反) ~(取补) ++(递加 ) (递减 ) (2)比较运算符比较运算符它的基本操作过程是 首先对它的操作数进行比较 尔后再返回一个true或False值 有8个比较运算符:<(小于) >(大于) <=(小于等于) >=(大于等于) ==(等于) !=(不等于) (3)布尔逻辑运算符在JavaScript中增加了几个布尔逻辑运算符: !(取反) &=(与之后赋值) &(逻辑与) |=(或之后赋值) |(逻辑或) ^=(异或之后赋值) ^(逻辑异或) ?:(三目操作符) ||(或) ==(等于) |=(不等于) 其中三目操作符主要格式如下 操作数?结果1 结果2若操作数的结果为真 则表述式的结果为结果1 否则为结果2
四 范例 下面是一个跑马灯效果的JavaScript文档
l<><head><script Language= JavaScript >var msg= 这是一个跑马灯效果的JavaScript文档 var interval = var spacelen = var space = var seq= function Scroll() { len = msg lengthwindow status = msg substring( seq+ )seq++if ( seq >= len ) { seq = spacelenwindow setTimeout( Scroll ()interval )}elsewindow setTimeout( Scroll()interval )} function Scroll () { var out= for (i= i<=spacelen/space lengthi++) out += space out = out + msglen=out lengthwindow status=out substring(seq len)seq++if ( seq >= len ) { seq = }window setTimeout( Scroll ()interval )} Scroll()</script><body></body></>
lishixinzhi/Article/program/Java/JSP/201311/19285
包管理器(Package Manager)
npm 最初它只是被称为 Node Package Manager,用来作为Node.js的包管理器。但是随着其它构建工具(webpack、browserify)的发展,npm已经变成了 "the package manager for JavaScript",它用来安装、管理和分享JavaScript包,同时会自动处理多个包之间的依赖。
新版的nodejs已经集成了npm
Node.js:nodejs分为了 长期支持版 和 当前版本 。
Linux中安装nodejs的方法:
对于国内的情形,在使用npm安装JS包之前建议先更改npm的镜像。
配置 npm 的国内镜像站点为: https://registry.npm.taobao.org 。
方法一:在系统的HOME目录新建 .npmrc 文件并添加 registry = https://registry.npm.taobao.org
方法二:你可以使用淘宝定制的 cnpm 命令行工具代替默认的 npm:
npm 的包安装分为本地安装(local)、全局安装(global)两种。
使用下面的命令来查看全局的包安装的位置:
如果你希望具备两者功能(本地安装和全局安装的功能),则需要在两个地方安装它或使用 npm link 。
npm link的功能是在本地包和全局包之间创建符号链接。我们说过使用全局模式安装的包不能直接通过 require 使用,但通过 npm link 命令可以打破这一限制。
比如我们将 express安装到了全局环境,使用下面的命令可以将其链接到本地环境:
使用 npm link命令还可以将本地的包链接到全局。使用方法是在包目录( package.json 所在目录)中运行 npm link 命令。
如果你的项目不再需要该模块,可以在项目目录内使用npm unlink命令,删除符号链接。
安装信息和它们的依赖
package.json配置内容
当你的项目需要依赖多个包时,推荐使用 package.json。其优点为:
文件中必须包含: name 和 version
两种依赖包:
如果其他人也需要这个项目,只需要把这个 package.json 文件给他,然后进行简单的 npm install 即可。
使用 npm set 命令用来设置环境变量。
也可以用它来为 npm init 设置默认值,这些值会保存在 ~/.npmrc 文件中。
使用 npm config 命令可以达到此目的。
或者手动在 ~/.npmrc 文件中进行配置:
更改目录后记得在系统环境变量 PATH 中添加该路径:
Node.js 的社区开发了多版本管理器,用于在一台机器上维护多个版本的 Node.js 实例,方便按需切换。Node 多版本管理器(Node Version Manager,nvm)是一个通用的叫法,推荐使用nvm安装node,
在发布之前,首先需要让我们的包符合 npm 的规范,npm 有一套以 CommonJS 为基础包规范,但与 CommonJS并不完全一致,其主要差别在于必填字段的不同。通过使用 npm init 可以根据交互问答产生一个符合标准的 package.json。
npm init 运行示例:
该文件就是一个符合 npm 规范的 package.json 文件。这里的 index.js 作为包的接口。
创建帐号:
测试是否取得帐号:
进入官网注册 https://www.npmjs.com/
发布
更新包:修改 version字段,再重新发布
取消发布:
npm scripts 使用指南 - 阮一峰的网络日志
package.json 文件有一个 scripts 字段,可以用于指定脚本命令,供 npm 直接调用。
npm run lint 可以运行脚本中的 lint 命令。 npm run test 可以运行脚本中的 test 命令。
npm run 命令会自动在环境变量 $PATH 添加 node_modules/.bin 目录,所以 scripts 字段里面调用命令时不用加上路径,这就避免了全局安装NPM模块。
start 和 test 属于特殊命令,可以省略 run :
如果仅仅使用 npm run 会列出scripts属性下所有的命令:
npm 模块安装机制简介 - 阮一峰的网络日志
NPM 使用介绍 - 菜鸟教程
npm Documentation
如何卸载使用npm链接安装的软件包?
package.json文件 -- JavaScript 标准参考教程(alpha)
npm模块管理器 -- JavaScript 标准参考教程(alpha)