作用:
- 进行相对简单的操作
- 展示的更好
- 主动调用服务器的代码
- 1.提供客户端验证
用户名.密码.验证码。客户端可以进行简单验证 - 2.诸如判断用户是否存在的例子主动调用服务器的代码
JS起关键作用,承前启后的作用,AJAX - 3.网页特效
JavaScript执行机制:JS(不是JScript的简写)
- B/S工作机制:输入网址、点网页超链接、点CS超链接→把你输入的内容解析正确的完整的网址→根据DNS找到对应服务器→取到相应的资源(HTMLCSSJSImages)→浏览器就来解析这些东东
- 有JS:HTML+CSS+JS+Images展示的更好,能够进行简单的操作,而且可以主动调用服务器的代码
- 无JS:HTML+CSS+Images展示,不能做任何事情
JavaScript发展史约等于浏览器的发展史
- 1994Netscape网景公司100%
- Windows95 ie收费
- Windows98 ie免费
- Sun:Java
- 2005左右JavaScript
- VBScript+ASP jQuery
JavaScript作为脚本语言的特别之处:
- 脚本语言:更像脚本(解释型语言)而不是更像语言(狭隘的理解为编译型语言)执行流程 执行平台:浏览器 执行位置 语法严格程度
- 语法:变量 顺序分支循环等结构 数组等概念
- dom编程 tom编程
- OOP
- jQuery
- AJAX
JavaScript语法之变量和基础:
- 建议将JS代码放置在head标签中,也可以在html的几乎任何位置
- 以方法的形式组织代码,利用事件触发机制来调用方法
- var可有可无,可以任意改变其数据类型,提前的是能够改变
- 变量名区分大小写,和C#一致,不能占用js的关键字和保留字
- 变量名能够使用数字、英文字符、_等作为变量名的一部分,同时数字不能作为变量名的首位
JavaScript语法之变量数据类型:
- 数字+数字:算术运算
- 数字+字符串:连接
- JS var numberOne;没有数据类型的 var numberOne = 5;值、类型、处理方式 numberOne = "abc"; 数据类型发生转变 总是在使用时根据值来确定数据类型
- C# int numberTwo:确定数据类型的 int numberTwo = 5;值、类型、处理方式 numberTwo = "abc"; 语法错误,从声明到消亡数据类型是确定的
- 基本数据类型:数字型:整数 小数(浮点数 实数) 字符串型 布尔型
- 数字型有两个特殊值NaN Infinity
- 八进制以0开头,十六进制以0X开头
- 数组
- 对象
- 所有对象的两个特殊值:Null undefine
JavaScript语法之常用函数:
- document:write向htmlbody区域写入要插入的html代码的字符串,至于插入的位置由Js代码和html位置关系决定
- window:prompt 获取用户输入 text提示输入的文本 defaulttext输入框的默认文本 如何获取用户输入,直接用变量接收该函数的返回值 如果点击取消返回Null
JavaScript语法之运算符:
- 赋值运算符= += *= -= /=
- 算术运算符+ - * / % ++(前置:先加1,再执行语句本身;后置:先执行语句本身,再加1) --
- 关系运算符> < >= <= == !=
- 非1看做是false 1就是true NaN null Infintiy undefine==任意布尔值返回的都是false,!=任意布尔值返回的都是true
- 数据类型不一致,就需要统一数据类型,就会自动强制转换,但字符串不会自动转变为ASCII码
- 逻辑运算符&& 短路运算符 || 当两个操作数都返回的是false,返回结果是第一个转化为false的值 !
- 位移运算符>> <<
JavaScript语法之语法结构:
- 顺序结构
- 分支结构: switch(表达式)可以是任意js类型,包括数组或者对象 case后面的内容未必需要常量,变量也可 各个case后面的内容类型不必一致 不同的case如果之间没有break是可以贯穿的 不同的case公用主体也可以
- 循环结构
JavaScript语法之FireBug:
JavaScript基础之函数function:
- 为什么需要有函数/函数有什么作用、优势:就和C#中的方法是一致的,封装(体现OOP的三大特征之一)代码重/复用性 结构化设计 差异:C#OOP非常彻底,所有代码几乎都需要放在方法中,否则都要报错; JSFunction却没有严重,只有当大段代码在特定事件的情况下需要用的时候才必须使用function
- 快速入门:基础语法、使用步骤
基础语法:function functionName([paramentList]){ [MainCode; return value;] } 使用步骤:1.定义function2.调用函数
- 进阶:函数使用注意事项、各种使用场景 函数命名:动宾短语,小写开头,后面单词首字母大写 string.replace(regexp,replacement):正则表达式 一种特殊用于匹配特定条件的字符串的字符串 替换内容 参数:定义参数不需要数据类型,参数类型与预期类型不一致不会报语法错误,顶多就是执行过程中报错 默认的可变列表 返回值: 仅能返回一个值,用return关键字返回,即使函数体中有返回值,函数签名中也不会出现返回值类型, 也不会出现是否返回的标志,一切都依赖于程序员是否能够写正确. 即使没有显式返回值,也可以使用变量来接受该无显式返回值的函数的隐式返回值,值为undefined html如何直接调用Js:直接书写语句即可,就好像代码直接位于
- 复习:简单的OOP Logic
JavaScript基础之数组:
- 定义与调用:详情请见ArrayDemo.js
- 二维数组:
JavaScript基础之对象OOP编程简介:
- 两个错误认识: error1:初学者通常可能会将JavaScript语言看做是面向过程(功能Logic)语言,其实他是面向对象的语言 大部分初学者的入门语言并不是JavaScript弱类型语言,而起码是C语言、C#、Java作为入门语言。客户端验证、网页特效、无刷新页面, 想起来学习JavaScript语言。JS现学现卖,面向功能。难免急于求成,留下这样的印象。 error2:与其说JS是一门面向对象的语言,不如说JS是一门基于面向对象的语言 汇编语言(面向机器) C语言(面向过程) C++ Java C#(面向对象)JS(基于面向对象) 绝大部分都体现着这个思想,类和对象之间的关系,JS中将类都作为是对象的一种,作为特殊对象,产生新的对象 面向对象 基于面向对象 类 原型对象 将错就错
- 三个OOP特性 封装:function 继承:冒充对象 多态:无态。变量的数据类型的无态,使用变量的时候确定数据类型。
- 各种JS框架:2010 jQuery40+% ExtJs