<>前言

布兰登·艾奇(Brendan Eich,1964年),JavaScript的发明人,从2007年开始在Mozilla公司担任首席技术长官(Chief
Technology Officer)。

JavaScript,俗称JS。是一种高级的、多范式、解释型的编程语言,是一门基于原型、函数先行的语言,它支持面向对象编程、命令式编程以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式,不支持I/O(比如网络、存储和图形等),但可以由它的宿主环境提供支持。它已经由ECMA(欧洲计算机制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器支持。

JS虽然语法和C、Java很像,但是JS是不需要编译的,它可以依赖浏览器,和环境无关,事件驱动javascript可以直接对客户的输入做出响应。

那么,JS是什么呢?比如,你用HTML写一个网页,但是没有一点点新颖,有点都不美观好看,这时该怎么办呢?恩,所以你想给它穿衣服,于是你就去学习了CSS。但是,这个时候,你又想和网页交互,比如你点击网页的按钮后,希望那个区域发生变化等,然后呢,你又学习了JS。那么JS能做什么呢?JS可以获取用户的动作,比如你点击了鼠标或者按键,JS可以获取你点击的状态,然后根据你点击的什么位置等等进行相应的动作,比如改变颜色等。当然,这只是JavaScript的其中一个功能。

JavaScript 实现是由以下 3 个不同部分组成的:核心(ECMAScript)、文档对象模型(Document Object
Model,简称DOM)、浏览器对象模型(Browser Object Model,简称BOM)。

说了这么多废话,想必你应该清楚的了解到了JavaScript的重要性了。你也很迫不及待的想知道JS的功能了吧,不急,我们慢慢来细说。

首先得知道它的代码结构,如下:

JS和HTMLl的结合方式:

* 使用标签在head中加入
* 在script中引入外部文件
JS的数据类型和Java的一模一样,也是八大基本数据类型:

* byte
* short
* int
* long
* float
* double
* char
* boolean( true //数值等于1,false //数值等于0)
字符串相加相减操作:
var str="123" alter(str+1); //1231 相加--字符串连接 alter(str-1) //122 相减--相减运算 NaN
提示:表示不是一个数字
<>注意:JS定义变量是用var,不区分整数和小数

== 和 === 的区别:前者就是等于;后者是等于(检查值和类型)。

document.write()

* 直接向页面输出的语句(吧内容显示在页面上 <>数组三种定义方式: var i = [1,2,3]; var i = [1,true,"4"];
使用内置对象 Array对象 var arr = new Array(5); arr[0] = 1; 使用内置对象Array var arr = new
Array(3,4,5) 数组属性 length:获取数组长度 <>函数三种方式: function 方法名(参数列表){ 方法体; //返回值可有可无;
//参数列表不需要类型 //如function(a,b) } 方法名(); 匿名函数 var add = function(参数列表){ 方法体和返回值 }
add(); 使用js的一个内置对象 Function 动态函数 var add = new Function("参数列表","方法体;返回值");
//var add = new Function("x,y","var sum;sum=x+y;return sum;"); //
alter(add(2,5)); 优化: //var par = "x,y"; //var method = "var sum;sum=x+y;return
sum;"; //var add = new Function(par,method); //aletr(add(2,5)); <>全局变量和局部变量 --
全局变量:在script标签里面定义一个变量,这个变量在页面中js部分都可以使用。 -- 局部变量:在方法内部定义一个变量,只能在方法内部使用。 <>
String对象 属性 : length API:BrowserScripting-JavaScript 方法: html相关 bold(): 加粗
fontcolor(): 设置字符串颜色 fontsize(): 设置字体大小 link(): 将字符串显示成超链接 sub() sup(): 下标和上标
java相关 concat():连接字符串 charAt():返回指定位置的字符串 indexOf():返回字符串位置 split():分割字符串成数组
replace():替换字符串 substr():从第几位开始,向后截取几位 subString():从第几位开始,到第几位结束,但是不包含最后那以为 <>
Array对象 创建数组 var array = [1,2,"3"] var array = new Array(5); var array = new
Array(1,2,"3") var array = []//创建空数组 属性:length:数组长度 方法: concat() 连接数组,将值返回给新数组
join() 根据指定的字符分割数组 push() 向数组末尾添加元素,返回数组的新的长度 如果添加的是数组,此时吧数组当做一个字符串加进当前数组;
pop() 表示删除最后一个元素,返回删除的那个元素 reverse() 颠倒数组中的元素的顺序 <>Date对象 var date = new
Date(); 获取当前时间: var date = new Date(); 转换为习惯格式: date.toLocaleString(); 获取年:
getFullYear(); 获取月: getMonth(); 返回0-11 获取日: getDate(); 获取星期: getDay() 返回0-6
星期天作为星期一的开始 获取小时: getHours(); 获取分钟: getMinute(); 获取当前秒: getSeconds(); 获取当前毫秒数:
getTime(); <>Math对象 属性: PI 返回圆周率 E 自然对数地鼠 静态方法 直接通过类名调用: Math.ceil()向上舍入
Math.floor() 向下舍入 Math.round() 四舍五入 Math.random() 得到0.0-1.0的随机数(伪) //0-9
document.write(Math.floor(Math.random()) * 10); Math.max()最大值 Math.min()最小值
Math.pow(x,y);幂 x的y次方 <>关于JS函数重载 js中不存在重载: 但可以通过aruguments数组来模拟重载的效果
传进的菜蔬有aruguments接收 然后可以通过if判断aruguments.length()实现 <>JS全局函数
eval():吧javascript字符串当做脚本代码来执行 var a = "alert('1234')"; eval(a);//输出1234 <>Bom
浏览器对象模型: navigator 获取客户机信息(浏览器信息) navigator.appName 显示浏览器的名称属性 screen 获取屏幕信息
screen.width 宽度 screen.height 高度 location 请求url地址 location.href 获取到请求的url地址
history 请求的url的历史记录 history.back() 上一次html路径页面 history.go(-1) history.forward()
下一次html路径页面 history.go(1) history.go 加载history列表中的某一个具体页面 实现浏览器页面上下一层页面 window
js中顶层对象、浏览器窗口对象 window.alert():弹出框显示内容 window.confirm(提示内容):确认提示框
window.prompt(提示内容,默认输入内容):输入对话框 window.open("打开的新窗口的地址url","","矿口特征(宽,高)")
:打开一个新的浏览窗口 window.close():关闭窗口(浏览器兼容性差) 计时器: 1s = 1000ms
window.setInterval("js代码","毫秒数") 重复 window.setTimeout("js代码","毫秒数") 单词
window.clearInterval(setintervalID) 清除setInterval定义的计时器
window.clearTimeout(setTimeoutID) 传入定时器方法返回的ID <>DOM document对象: 属性: all[]
提供对文档中所有html元素的访问 ff不支持 forms[] 返回对文档中所有Form对象英语 body 提供对<body>元素的直接访问 方法:
getElementById()返回对拥有指定ID的第一个对象的引用 getElementsByName()返回带有指定名称的对象集合
getelementsByTagName() 返回带有指定标签名的对象集合 write()向文档写html表达式或javascrept代码
当然光记光看是没有用的,得熟能生巧,多实战,多做练习。那么我们最后来简单的说一下JavaScript的常见问题吧。

* prototype
prototype.js是由Sam
Stephenson写的一个javascript类库。该框架的设计思路巧妙,而且兼容标准的类库,能够帮助开发人员轻松建立有交互性良好的web2.0特性富客户端页面。
* Jquery
Jquery是继prototype之后又一个优秀的Javascrīpt框架。它是轻量级的js库(压缩后只有21k)
,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera
9.0+)。jQuery使用户能更方便地处理HTML
documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
* Ext

Ext是一个强大的js类库,以前是基于YAHOO-UI,现在已经完全独立了。主要包括data、widget、form、grid、dd、menu,其中最强大的应该算grid了,编程思想是基于面向对象编程(oop),扩展性相当的好.可以自己写扩展,自己定义命名空间。主要包括三个大的文件:ext-all.css,ext-base.js,ext-all.js(包括所有的类库,您可以根据需要进行删减.官方网站提供这一接口),在引用ext类库的时候,这三个文件必不可少。它提供了丰富的,非常漂亮的外观体验,成为众多界面层开发人员的追捧!其核心的组件基本覆盖了我们构建富客户端的常用的组件。

技术
©2019-2020 Toolsou All rights reserved,
Chrome OS,对程序员和Windows意味着什么?,互联网营销C#中字典的排序方法face_recognition的5个应用实例精准手机号抓取,运营商大数据蚂蚁集团香港IPO获得中国证监会批准连硅谷都撑不住了?远程办公的技术人员可能被减薪创建数据mysql库流程访客手机抓取方法程序员python表白代码你不知道的鸿蒙——HarmonyOS