美文网首页
javaScript

javaScript

作者: 开心的小哈 | 来源:发表于2022-03-29 20:48 被阅读0次

javaScript概念:运行在客户端浏览器中的。每一个浏览器都有javaScript的解析引擎
脚本语言:不需要编译,直接可以被浏览器解析执行了;
功能:
可以来增强用户和HTML页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验;
发展史:

  1. 1992年,nombase公司,开发出一门客户端脚本语言,专门用户表单的校验,命名为:C--,后台更名为:ScriptEase
  2. 1995年,netscape(网景)公司,开发了一门客户端脚本语言:LiveScript。后来请来了sun公司的专家,修改LiveScript,命名为:javaScript
  3. 1996年,微软抄袭javaScript开发出Jscript语言
  4. 1997年,ECMA(欧洲计算机制造商协会)ECMASScript,所有客户端脚本语言的标准。

JavaScript=ECMASScript+javaScript自己特有的东西(BOM+DOM)
javaScript有以下特点:
简单性:js是简化的编程语言,变量类型简单,不声明也能使用。
基于对象:js不完全面向对象,不支持类的集成,是基于对象而不是面向对象的语言。
可移植性性:js可在浏览器不经修改直接运行。
动态性:可用来设计客户端交互动态页面。
安全性:js是一种安全性语言,对本地资源的访问和操作优先,只能通过浏览器实现信息浏览器或动态交互。

JavaScript的自定义对象
js语言是基于对象的语言,并非面对象的语言,js中没有类,只有对象,我们不能像在传统的语言里那样用class来定义类,但我们可利用js的闭包封装机制来实现js中的类。
js自定义对象有两种方式

  1. 把函数function当成对象;
  2. 用proptotype对象类实现js的自定义对象;
function Person(name  ,gender){
    this.name=name;
    this.gender=gender;

    this.wboaryyou=function(){
        var str="name"+name+"age"+gender;
        return str;
    }
}
var p = new Person('adsf','sadf');
alert(p.wboaryyou);

Person.prototype.age=20;
Person.prototype.getAge=function (){
    return this.age;
}

编写复杂的应用系统代码时,需要采用JS自定义对象,甚至通过闭包封装机制等实现js的面向对象特性:封装、抽象与集成。

ECMASScript

  1. 基本语法
    1. 与HTML结合方式
      1. 内部js<script>alter("hello word")</script>,标签内容就是js
      2. 外部js<script src="jsee/a.js"></script>通过src引入外部的js文件
      • 注意<script/>可以定义html页面任何地方,但定义的位置会影响执行的顺序;
      • <script/>可以定义多个
    2. 注释
      1. 单行注释//注释内容
      2. 多行注释/注释内容/
    3. 数据类型
      1. 原始数据类型(基本数据类型):
        1. number:数字。整数/小数/NaN()一个不是数字的数字类型
        2. string:字符串。字符/字符串”abc“ ‘abc’ ‘c’
        3. boolean:true和false
        4. null:一个对象为空的占位符
        5. undefined:未定义,如果一个变量没有给初始值,则会被默认赋值为undefined
      2. 引用数据类型:对象
      3. typeof(变量)可以打印该变量的数据类型;
    4. 变量
      1. 变量:一小块存储数据的内存空间;
      2. java语言是强类型的语言,javaScript是弱类型的语言,强类型在开辟变量存储空间时,定义了空间将来存储的数据类型,只能存储固定类型的数据
      3. 弱类型,在开辟变量存储空间时,不定义空间将来的存储类型,可以存放任意类型的数据。
      4. 语法 var 变量名=值;
    5. 运算符
      1. 一元运算符,只有一个运算符的运算符:++ -- +(正好)
      2. 算数运算符:+ - ** / % % 。。
      3. 赋值运算符:= += -=
      4. 比较运算符:> < >= <= == ===(全等于)
      5. 逻辑运算符:&& || !
      6. 三元运算符:? :
        注意:在js中,如果运算数不是运算符所要求的类型,那么js引擎会自动地将运算数转换其他类型转换
      • 其他类型转number
      • String转number 按照字面转换。如果字面值不是数字,则转为NaN(不是数字的数字)
      • boolean转number:true转1,false转0
    6. 流程控制语句
      其他类型转boolean
  2. number:0或NaN为假,其他为真
  3. string:除了空字符串其他都是true
  4. null&undefined:都是false
  5. 对象:所有对象都为true
    if(obj!=null){//防止空指针异常
    }
    if(obj){
    }
    js特殊语法
    1.语句以;号结尾
    2.变量的定义使用var关键字,也可以不使用,用:定义的变量是局部变量,不用:定义的变量是全局变量(不建议);
    流程控制语句
    1.if。。else。。。
    switch
    在java中switch语句可以接受的数据类型:int byte shor char 枚举,String
    在js中switch什么类型的语句都可以接受;
    whie
    do。。while
    for
    99乘法表
<html>
<title>123</title>
<style>
td{
border: 1px solid;

}
</style>
<body>
<script>
document.write("<table >");
for(var i=1;i<9;i++){
document.write("<tr>");
for(var j=1;j<=i;j++){
document.write("<td>");
document.write(i+"*"+j+"="+i*j);
document.write("</td>");
}
document.write("<br>");
document.write("</tr>");
}
document.write("</table>");
</script>
</body>
</html>

js中预定义函数
Eval()使用:可以将字符串的数字进行运算例如输入1+2;执行结果返回3;
escape(string)返回字符的编码
parseFloat(floatstring)字符数字变成实数
parseInt(numbestring,radix)字符数字按进制变成整数

基本对象:
string对象
anchor()锚点
var anem=anchor("strart"); 等同于<a name='start'>开始</a>
link()创建一个超链接
var str="石头人";
var hname=str.link("http://www.baidu.com")
document.write(hname)//输出<a href="http://www.baidu.com">石头人</a>
substring(start,end)该字符串包含从start知道end(不包含end)的字符串

indexOf(str)查找srt所在的位置抵押给
还可以使用new String("石头人")来创建对象
charCodeAt()字符转换ASCII码
fromCharCode(Asciicode)ASCII码转换字符

Function:函数对象,
1.创建 var fun=new Function(形式参数,方法体);
2.function 方法名(方法参数){
方法体
}
特点:方法定义时var可以不用写形参和返回值都可以不用写,方法是一个对象如果存在两个同名方法则会进行覆盖;在js中方法调用的值与方法有关,和参数是列表无关;
在方法生命中有一个内置的隐藏对象,arguments封装了所有参数;
3.var 方法名=function(){};
属性
lenth,代表形参的个数;

array数组对象

  1. var arr=new Array(1,2,3,4)
  2. var arr=new Array(22);
  3. var arr =[1,2,3];
  4. var arr=new Array(); arr[1],arr['2'];

特点:数组的长度是可变的,类型也是可变的
属性:lenth数组的长度;
方法:join()将数组的元素拼接为字符串;
push()将数组的尾部添加元素;

Data对象
1.创建
var data=new Date()
方法:toLocaleString()返回data对象对于的时间本地字符串格式;
getTime:获取毫秒值。返回当前如期对象描述的时间到1970年前面
var str=d.getFullYear()+"年"+d.getMonth()+"月"+d.getDay()+"天";

Math对象
1.创建:
特点:该对象不用创建可以直接使用Math.方法名
方法:
PI
rendom()返回0-1之间的随机数(含0不含1)
cell对数进行上舍入
floor对数进行下舍入
round把数四舍五入

RegExp正则表达式对象
单个字符[]如[a],[a-z],
特殊符号代表特殊含义
\d单个数字字符
\w单个单词字符
量词符号:*0此或多次 ?表示0或1次 +1此或多次;
{m,n}数量m<= >=12,m如果不写则表示最多n此,如果n不写则表示最少m次;
1.创建
1.var reg =new RegExp("正则表达式“)
var reg=/正则表达式/;
开始结束符号:以^ 开始 &结束
2.方法
test(‘dafasdf’):验证字符串是否符合规则,如果符合return true;

Global对象
1.创建:
2.特点:全局对象,这个Global中方法的不需要调用对象可以直接使用,方法名()
3.方法:encodeURL(),URL编码 decodeURL解码,encodeURLComPonent()编码编码的字符更多,decodeURIcomponent 解码
paresInt()将字符串转换数字
注意判断每一个字符是否是否数字,指导判断不是数字位置,将钱买你的数字转为number
isNaN()判断是否是nan六亲不认,nan参数的==比较全部为false,需要使用改方法进行判断;
eval()解析成代码判断;

BOM

功能:控制html文档的内容的;
代码:获取页面的标签(元素)对象element
document.getElementById(di值):通过元素的id获取元素对象;
获取对象Element对象

  1. 设置属性值:1. 名曲获取的对象是那个? ,2.查看API文档,找到那些属性可以设置;
  2. 修改标签内容:1. 属性innerHtml设置标签体内容,innerText设置标签里面的文本

事件

  • gg概念:某些组件被执行了某些操作后,触发某些代码的执行。
  • 如何绑定事件
    1. 直接在HTML标签上,指定事件的属性(操作),属性值就是js代码
    2. 事件onclick--点击事件
    3. <img id=light src="img/off.gif" onclick="fun()">
    4. 通过js获取元素对象,指定事件属性,设置一个函数
var openBtn=doucument.getElementById("openbtn")
openBtn.onclick=function(){
open("htts://www,baidu.com")
}

window:窗口对象

  1. 创建
  2. 方法
    1. 与弹出框有关的方法
      alert() 显示带有一段消息和确认按钮的警告框
      confirm()显示带有一段消息以及确认和取消按钮的对话框,如果用户点击确认按钮则返回true,如果点击取消则返回false
      prompt()显示可提示用户输入的对话框
      showModaIDialog可以创建模态对话框;允许操作父窗口及自己;
    2. 与打开关闭的方法
      1. open()打开一个新窗口,有可能会被拦截哦,返回一个新的window对象
      2. close()谁调用我,我就关闭谁,默认是自己;
    3. 与定时器有关的方法
      1. setTimeout()参数1.js代码或者方法,参数2是毫秒值;只会执行一次;,返回一个id
      2. clearTimeout()参数1.传入id即可清除;
      3. setInterval()参数1.js代码或者方法,参数2是毫秒值;循环定时器;,返回一个id
      4. clearInterval()参数1.传入id即可清除;

navigate("http://www.qq.com")导航到另一个页面,经常使用的功能。

  1. 属性
    1. 获取其他BOM对象:
      浏览器的属性 navigator.appName获取浏览器名称等;
    2. history历史记录对象:
      1. 创建(获取)window.history
      2. 方法:
        1. back():加载history列表的前一个url
        2. forward()加载history列表的后一个url
        3. go(参数)加载history列表中的某一个页面,正数前进访问第几个历史记录,负数后退访问第几个历史记录;
      3. 属性:length 当前窗口历史列表中的url数量
    3. location地址栏对象:
      1. 创建(获取):location,window.location
      2. 方法:reload()重新加载当前文档
      3. 属性:href设置或返回完整的url
      4. location.search;获取传入的参数?x=5;y=6;
    4. Navigator
    5. Screen
    6. 获取Dom对象document
  2. 特点
    1. window对象不需要创建可以直接使用window使用。window.方法名();
    2. window引用可以省略。方法名()

DOM:

HTML Dom 是一个可以让脚本程序动态访问和更新HTML文档内容、结构和样式的技术。他是跨平台、可适应不同程序语言的文件对象模型,采用直观一致的方式,将HTML文档进行模型化处理,是一种提供存取和更新文档内容、结构和样式的编程接口。
将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作;
DOM定义了访问HTML和XML文档的标准
W3C DOM 标准被分为3个不同的部分

  • h核心DOM 针对任何结构化文档的标准
    • Document文档对象
    • Element元素对象
    • Attribute 属性对象
    • Text文本对象
    • Comment:注释对象
    • Node 节点对象,其他5个的父对象
  • XML DOM 针对XML文档标准模型
  • HTML DOM 针对HTML文档的标准模型

Document对象

  1. 创建(获取):在HTML dom模型中可以使用window对象来获取
  2. 方法:
    1. 获取Element对象:
      1. getElementById()根据id属性值获取元素对象。di属性值一般唯一
      2. getElementsTabName()根据元素名称获取元素对象们。返回值是一个数组
      3. getElementsClassName()根据Class属性值获取元素对象们。返回值以一个数组
      4. getElementsByName:根据name属性值获取元素对象们。返回值以一个数组
    2. 创建其他的DOM对象
      1. createAttribute(name)
      2. createElement()
      3. createTextNode()
  3. 属性:
    1. Element元素对象
      1. 创建:通过document来获取和创建
      2. 方法
        1. setAttribute设置属性
        2. removeAttrbute删除属性
          3.Node节点对象,其他5个的父对象
    • 特特:所属有dom都可以认为是一个节点
    • 方法:
      • appendChild:向节点的子节点列表的结尾添加新的子节点
      • rremoveChild:删除并返回当前节点的指定子节点
      • rreplaceChild:用新系欸但那替换一个子节点
    • 属性:
      • parentNode;

attributes节点属性的对象集合
chileNodes子节点的对象集合
DOM树形结构节点有只读属性和读写属性两类。
通过只读属性可以浏览节点,并可获得节点的类型及名称等信息
通过读写属性可以访问文字节点的内容

超链接功能
1.可以被点击:样式
被点击后跳转href指定的url地址
需求保留1功能,去掉2功能
实现 href="javascript:void(0)"

HTML DOM

  1. 标签体的设置和获取:innerHTML
  2. 使用HTML元素对象的属性
  3. 控制元素样式
    1. div1.sytle.border="1px solid red";
    2. font-Size,则写成fontSize
      也可以使用类选择进行调整样式
      提前定义好来选择器,通过元素的className属性来设置其class样式

常见的事件
event.keyCode获取点击键盘的编码;

  1. onclick:单击事件
  2. ondbclick:双击事件
    焦点事件
  3. onblur失去焦点
  4. onfocus元素获取焦点
    加载事件
  5. onload一张页面或一幅图像完成加载。
    鼠标事件:
  6. onmousedown鼠标按钮被按下
  7. onmouseup鼠标按钮被松开
  8. onmousemove鼠标被移动
  9. onmouseover鼠标移动到某个元素之上
  10. onmouseout鼠标从某个元素一开
    键盘事件
  11. onkeydown 某个键盘按钮被按下。
  12. onkeyup 某个键盘按钮被松开
  13. onkeypress某个键盘那妞被按下并松开

ActiveX变成技术
可以通过页面程序自动控制word、excel来帮我们自动完成很多工作!其实,这种变成有一个捷径,就是将要自定完成的工作利用word或exce的录制宏共嗯那个生成VBA代码,在复制粘贴到页面代码中, 修改即可。

文档对象的属性
document.URL 获取当前浏览器页面的url地址
document.URLUnencoded;url解码
document.lastModified:显示此网页最后修订日期;
document.bgColor;设置或获取页面颜色
document.cokie
getCookie('name')
document.onselectstart=false;//无法选中
document.oncontextmeun=false;/

相关文章

网友评论

      本文标题:javaScript

      本文链接:https://www.haomeiwen.com/subject/lmuerrtx.html