Java_Script_(上)
应用系统开发导论 Java Script 上内容JavaScript概述  JavaScript核心小结 JavaScript概述 JavaScript的基本概念 JavaScript 是一种脚本语言增强功能和表现客户端脚本使得页面动态和交互也可以作为服务端的脚本语言 JavaScript溯源由Netscape公司于1995年在它的Navigator 20产品上设计并实现原名LiveScript  但是在LiveScript发布三个月后出于销售策略上的考虑Netscape公司与Sun公司发表联合声明将LiveScript改名为JavaScript  所以尽管JavaScript与Java在名称语法结构关键字方面都有相似之处但实际上他们是完全不相干的目前JavaScript的标准化进程还不够完善尽管早在1997年ECMA就通过第一个版本的JavaScript标准JavaScript在其中被称为ECMAScript至今已有三个版本的标准ECMA-262问世  Microsofts JScript 一个样例代码      Welcome    -- JavaScript Program --  script language "javascript" type "textjavascript"  ----  [CDATA[  --  Utility Functions Section  Checking Browser Version var ns4  documentlayers var ns6  documentgetElementById  documentall var ns  ns4  ns6  ns  Mozilla Series Browser var ie  documentall  ie  IE and Opera Browser  Function for Finding Object Reference by ID function getObj nameId    if documentall    IE and Opera Browsers  return documentall[nameId] else if documentgetElementById    Mozilla Series Browsers  return documentgetElementById nameId  else    alert "unsupported browser"  navigatoruserAgent  return null  Global Data Section var cx  150 var cy  150 var radius  36  Main
Functions Section function trackMouse e    if e  e  windowevent  Fixing for IE Event Model  var obj  getObj "point"  Finding Object Reference by ID point  var nx ny  if ie    IE and Opera Browser  nx  eclientX  docucomllLeft  ny  eclientY  docucomllTop
else if ns    Mozilla Series Browser  nx  parseInt epageX  parseInt windowpageXOffset  ny  parseInt epageY  parseInt windowpageYOffset  var dx  nx - cx  var dy  ny - cy var dst  Mathsqrt dx  dx  dy  dy  if dst  radius
var theta  Mathasin dydst  nx  cx  dx    01-1  radius  Mathcos theta    ny  cy  radius  Mathsin theta  com    nx - 2  "px"  com    ny - 2  "px"    Register Event Handlers documentonmousemove  trackMouse --  ]]      -- 6>HTML Document
Section --    img src "circlegif"
style "positionabsoluteleft98pxtop98pxz-index1"  img src "pointgif"
id "point"
style "positionabsoluteleft150pxtop150pxz-index2"        --
JavaScript 程序段 JavaScript Program  --  工具函数段 Utility Functions Section  浏览器类别和版本检查函数 Function for Checking Browser Version  对象索引函数 Function for Finding Object Reference by ID  全局数据段 Global Data Section    工作函数段 Main Functions Section    -- HTML 文档段 HTML Document Section  --  JavaScript特性JavaScript的语法构成上基本上与JavaCC等主流语言一致 JavaScript是一个
javascript全局数组弱类型的语言 JavaScript是一种基于对象的语言Object-Based Language注意
不是一种面向对象的语言Object-Oriented Language所以它在对对象的支持上
有一定缺陷大家所熟悉的诸如对象继承多态等面向对象语言所具有的基本特性
在JavaScript中只能通过一些变通手段来实现通常比较复杂 JavaScript作为一种解释性语言 JavaScript是一种具有丰富特性的语言它为开发者提供许多实用的库函数  JavaScript的功能控制文档的外观和内容对浏览器的控制
与HTML表单的交互与用户的交互存取客户的状态cookie JavaScript的安全性 JavaScript的安全性是通过运行在沙箱Sandbox环境中得到保证的沙箱环境通过监控JavaScript的操作给JavaScript程序的运行附加了许多安全性限制例如它不允许任意访问本地的硬盘并不能将数据存入到非同源的服务器上禁止
访问非同源网页上的文档对象从而有效地防止数据窃取等安全隐患非同源指的是下载JavaScript的站点不同于JavaScript请求交互的站点例如从A站点下载的JavaScript就不允许访问B站点网页的内容学习JavaScript必备技能
搭建基本的实验环境调试代码的基本技巧判别任务的可行性搭建基本的实验环境 Microsoft IE6 Editplus或Macromedia Dreamweaver        Hello World        script language "javascript" type "textjavascript"
documentwrite " Hello World "        调试代码的基本技巧documentwrite    alert          Debug        script language "javascript" type "textjavascript"  var msg  "debug End"  for  index in document        documentwrite "document["index"]
"document[index]" "  alert msg        判别任务的可行性JavaScript只能操作浏览器提供的对象和接口 JavaScript不能跨越沙箱运行环境的安全限制 JavaScript核心内容基本语法特征  JavaScript中的数据JavaScript中的语句常用的库函数示例基本语法特征 JavaScript使用Unicode字符集16位的Unicode编码几乎可以表示地球上任何一种已编码的书面语言但是直到ECMAScript v3标准出现才要求Unicode字符可以出现在JavaScript程序的任何地方在早期版本的JavaScript中Unicode字符只能出现在注释或用引号括起来的字符串中而程序的其他部分只能使用ASCII字符集
JavaScript是大小写敏感的 JavaScript忽略空白字符和换行符除非它们是字符串直接量或正则表达式的一部分 JavaScript中行末的作为分隔符的分号可以省略没有分号的话默认以换行符作为语句的结束标记如果你想在同一行中书写多个语句的话分隔语句中间的分号必不可少JavaScript支持CCJava型的注释单行注释以领头多行注释用和标注 JavaScript中标识符Indentifier即命名函数和变量的名字第一个字符必须是英文字母下划线_或美元符号接下来的字符可以是字母数字下划线或美元符号实际上在ECMAScript v3标准中该限制已经放宽到允许标识符中出现Unicode转义字符但不不建议大家这么做此外标识符还不能与用于其他目的关键字同名 JavaScript中的数据数字字符串布尔值函数对象数组 null和undefined 使用值和使用引用自动类型转化操作符数字 Integer Literals 03100000 Octal Literals 0377 0666 Hexadecimal Literals 0xff0xABCD123 Floating-Point Literals 3143333327e64187E-18  字符串字符串string是由Unicode字符数字标点符号等组成的序列它是JavaScript用来表示文本的数据类型在JavaScript中没有char这样的数据的类型所以我们只能用长度为1的字符串来表示单个字符JavaScript中字符位置的索引值从0开始即第一个字符的索引值是0  字符串操作 strings concatenation msg  "hello "  "JavaScript"  msg  "hello JavaScript" str  "ABCDEFG" length strlen  strlength  strlen is 7 the length of str charAt firstChar  strcharAt 0  firstChar  "A" substring midStr  strsubstring 1 6  midStr  "BCDEF" indexOf posC  strindexOf C  posC is 2 the position of the first letter C in str  posNotFound is -1 since W doesnt exist in str posNotFound  strindexOf W  布尔值布尔值boolean 代表了真与假它只有true和false两种合法值布尔值通常用在条件表达式中控制是否发生跳转由此控制分
支语句的执行 JavaScript程序中不显式区分类型其他类型的数据用在条件表达式中都会被隐式地转化成布尔类型一般非0非
null非undefined的变量都会被转化成true其他情况下就转化成false同样在
需将布尔值转化成数字的表达式中true和false会相应地转化成1和0  函数函数function是一个可执行的JavaScript代码段与Java不同函数在JavaScript中也可以作为一种数据类型  function functionName parameter  return parameter  retVal  functionName parameter  函数的赋值Declare function first then use it as data function foo e    return e  buttononclick  foo  Notice no parentheses after foo Function Literals buttononclick  function e    return e  Create Function Objects buttononclick  new Function "e" alert 1  "  对象对象object是已命名
的数据的集合其中那些已命名的数据也就是对象的属性通常被称之为对象的域field  创建对象是我们可以用new关键字也可以使用对象直接量赋值的方法new Operation o  new Object  ox  1 oy  new Object  com  2 Object Literals o    x 1 y  z2    数组数组array是用数字索引的对象的集合数
组和对象最大的区别就是对象靠非数值的名字来索引其中的数据而数组靠的是
数字下标JavaScript中数组下标从0开始编号用方括号[]运算符来访问其中的
元素例如A[i]即表示数组A中第i1个元素 JavaScript数组中可以存放任何一
种JavaScript的数据类型而且不要求数组元素类型相同如果数组元素类型是另
一个的数组就构成多维数组这一点与Java语言中的数组很相似数组的创建Create Arrays var a  new Array  var b  new Array 5  Access Elements in Arrays a[2]  12 a[3]  "hello" b[7]  a documentwrite a[0]  Print undefined documentwrite b[7][3]  Print "hello"  var matrix  [[1 2 3] "hello"  true] documentwrite matrix[0]  Print 123 null和undefined 对
象类型中包含一个特殊值null它表示无对象 null是一个独一无二的值有别于
其他所有的值通常被用来标记对象已失效同时表示值缺失还有一个比null更为通用的值undefinedJavaScript程序中任何一个未定义变量的值都是

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。