js(javascript 脚本)知识点总结

js(javascript 脚本)知识点总结


一、基础知识

1.js简介
(1)定义
    JavaScript一种直译式脚本语言,是一种动态类型、弱类型(Java是强类型)、基于原型的语言,
    内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言
(2)特点
    脚本语言 解释性 基于对象 事件驱动函数 
(3)组成部分 ★
    ECMAScript:js基础语法(规定 关键字 运算符 语句 函数等等...)
    BOM:浏览器对象模型
    DOM:文档对象模型
(4)作用
    修改html页面的内容
    修改html的样式
    完成表单的验证

2.js和html整合(两种方式)★
(1)方式1:内部编写js,在页面上直接写
    将js代码放在 <script></script>标签中,一般放在head标签中
    <script type="text/javascript">js代码</script>
(2)方式2:外部有一个独立的js文件  后缀名:.js
    在html中通过script的src属性导入
    <script src="js的路径"></script>    
    注:一旦使用了src属性,那么script标签体中的js代码将不再执行了
        
3.函数定义(两种格式)★
(1)方式1:
    function 函数名(参数列表){
        函数体;
    }    
(2)方式2:匿名函数
    var 函数名=function(参数列表){
        函数体;
    }
    例如:window.onload=function(){};
    注:函数不用声明返回值类型;参数不需要加类型;通过return结束方法将值返回
       函数调用的时候:函数名(参数)
                    
4.常见的事件 ★
(1)焦点 ★
    onfocus:获取焦点
    onblur:失去焦点
(2)表单事件 ★
    onsubmit: 表单提交(form表单里的) onsubmit="return 函数名()
    onchange:改变(下拉选)
(3)页面或者元素或者对象加载事件 ★
    onload:页面加载
    最常用的方式:window.onload=function(){};
(4)鼠标事件(掌握) ★
    onclick:单击
(5)鼠标事件(了解)
    ondblclick:双击
    onmousedown:按下
    onmouseup:弹起
    onmousemove:移动
    onmouseover:悬停
    onmouseout:移出
(6)键盘事件(理解)
    onkeydown:按下
    onkeyup:弹起 ★
    onkeypress:按住 
    
5.事件和函数的绑定(两种方式)★
(1)方式1:
    通过标签(元素)的事件属性   <xxx onxxx="函数名(参数列表)"></xxx>
    若参数为this:将当前的dom对象传递给了函数
(2)方式2:(常用)
    给元素派发事件
    dom对象.onxxx=function(){};
    即:
    document.getElementById("id值").onxxx=function(参数){....};
    document.getElementById("id值").onxxx=函数名;
    注:内存中应该存在该元素才可以派发事件
    解决办法:
    a.将方式2的js代码放在html页面的最下面
    b.在页面加载成功之后再运行方式2的js代码  通过onload事件.    
     

二、ECMAScript(js基础语法)

1.变量声明 ★
(1)方式一:(常用)
    var 变量名=初始化值;
(2)方式二:
    var 变量名;
        变量名=初始化值;

2.数据类型 ★

  原始类型(5种)
    Null,Undefined
    String(用引号引起来的内容),Number,Boolean
    通过typeof运算符可以判断出属于哪种原始类型
    格式:typeof 变量或值;
    注:原始类型中的String Number Boolean都是伪对象,可以调用相应的方法
    使用typeof的返回值:
    undefined - 如果变量是 Undefined 类型的 
    boolean - 如果变量是 Boolean 类型的 
    number - 如果变量是 Number 类型的 
    string - 如果变量是 String 类型的 
    object - 如果变量是一种引用类型或 Null 类型的 
    
  引用类型  new
(1)Array:数组 ★★
  a.语法:
    官方:
    new Array();//长度为0
    new Array(size);//指定长度的
    new Array(e1,e2..);//指定元素
    非官方:
    var arr=["aa","bb"];
  b.常用属性:length ★
    注:数组长度是可变的;数组可以存放任意值
  c.常用方法:(了解)
    存放值:对内容的操作
        pop():弹    最后一个
        push():插入 到最后    
        shift():删除第一个
        unshift():插入到首位
    打印数组:
        join(分隔符):将数组里的元素按照指定的分隔符打印
    拼接数组:
        concat():连接两个或更多的数组,并返回结果。
    对结构的操作:
        sort();排序
        reverse();反转        
(2)String ★★
  a.语法:
    new String(值|变量);//返回一个对象
    String(值|变量);//返回原始类型
  b.常用属性:length     
  c.常用方法:
    substring(start,end):[start,end) ★
    substr(start,size):从索引为指定的值开始向后截取几个        
    charAt(index):返回在指定位置的字符。
    indexOf(""):返回字符串所在索引        
    replace():替换 ★
    split():切割 ★        
(3)Boolean
    语法:
    new Boolean(值|变量);
    Boolean(值|变量);
    注:非0数字 非空字符串 非空对象 转成true
(4)Number
    语法:
    new Number(值|变量);
    Number(值|变量);
    注:
    null====>0 
    fale====>0 true====>1
    字符串的数字=====>对应的数字
    其他的NaN(not a number)
(5)Date:
  a.语法:
    new Date();
  b.常用方法:
    toLocalString()
(6)RegExp:正则表达式
  a.语法:
    直接量语法  /正则表达式/参数
    直接量语法  /正则表达式/    (常用)★        
    new RegExp("正则表达式")
    new RegExp("正则表达式","参数") 
    参数:
        i:忽略大小写
        g:全局
  b.常用方法: ★
    test() :返回值为boolean
(7)Math:
    Math.常量|方法
    例如:
    Math.PI
    Math.random()  随机数的范围:[0,1) ★
(8)全局 ★    
  a.编码 ★
    decodeURI() 解码某个编码的 URI 
    encodeURI() 把字符串编码为 URI    
  b.强制转化
    Number():强制转换成数字
    String():转成字符串    
  c.尝试转化 parseXxx
    parseInt()  :尝试转换成整数
    parseFloat():尝试转换成小数    
  d.eval() 计算字符串,解析成js代码执行 ★
  
3.运算符
(1)比较运算符: > >= < <=
    若两边都是数字 和java一样
    若一边为数字,另一边为字符串形式的数字,将字符串形式的数字转换成数字再进行比较   3>"2"
    若一边为数字,另一边为普通字符串,返回一个false   3>"hello"
    两边都是字符串的时候,比较ascii码
(2)等性运算符 == ===
    == :只判断值是否相同
    例如:"66"==66  true
    ===:不仅判断值是否相同,还要判断类型是否相同
    例如:"666"===666 false

4.语句 ★
  if语句,for语句, while 语句和java一样
  switch 和java基本一样(区别:switch 后面可以跟字符串. 还可以跟变量)  


三、BOM(浏览器对象模型)

所有的浏览器都有五个对象,常用的有三个:window,location,history

1.window对象:窗口
(1)常用属性:
    通过window可以获取其他的四个对象
    例如:window.location 等价于 location
(2)常用方法:
  a.消息框
    alert()   警告框
    confirm() 确认框 返回值:boolean
    prompt()  输入框 返回值:输入的内容
  b.定时器 ★
    设置
        var id = setInterval(code,毫秒数):每隔指定的毫秒数执行一次函数,循环,周期执行
        var id = setTimeout(code,毫秒数) :延迟指定的毫秒数之后 只执行一次函数            
        写法例如:
        setInterval(showAd,4000);
        serInterval("showAd()",4000);
    清除
        clearInterval(id):
        clearTimeout(id):
  c.打开和关闭
    open(url)
    close()
  注:若是window对象的属性和方法,调用的时候可以省略window
        
2.location对象:定位信息 地址栏
  常用属性:
  href:获取或者设置当前页面的url(定位信息)
    location.href:获取
    location.href="url":设置 相当于超链接
    
3.history对象:操作历史
  常用方法:
  back();后退
  forward():向前
  go(int)★
    go(-1) 相当于 back()
    go(1)  相当于 forward()

    
四、DOM(文档对象模型)★

1.document树
  当浏览器接受到html代码的时候,浏览器会将所有的代码装载到内存中,形成一棵树(document树)
  节点(Node):
    文档节点 document  例如:整个文档
    元素节点 element   例如:head.body,title等
    属性节点 attribute 例如:href等
    文本节点 text      例如:文字“点击”
    
2.获取节点: ★
(1)通过document可以获取其他节点:
    常用方法:
    document.getElementById("id值"):获取一个特定的元素
    document.getElementsByTagName("标签名"):通过标签名获取一种元素(多个)
    document.getElementsByClassName("class属性的值"):通过class属性获取一类元素(多个)
    document.getElementsByName("name属性的值"):通过name属性获取一类元素(多个)
(2)设置或者获取节点的value属性
    dom对象.value;   获取
    dom对象.value="";设置
(3)设置或者获取节点(元素)的标签体
    dom对象.innerHTML;获取
    dom对象.innerHTML="";设置
(4)获取或者设置style属性
    dom对象.style.属性;获取
    dom对象.style.属性="";设置
(5)获取或者设置元素的属性
    dom对象.属性
            
3.(了解)文档查找
   对于htmldom的操作若在js或者htmldom查找不到,去查找xml dom
   关于文档的操作 在 xml dom 的document中
   关于元素的操作 在 xml dom 的element中
   appendChild(dom对象):在一个元素下添加孩子  


四、常见案例    


1.案例一:js简单校验表单    
(1)需求:表单提交的时候需要校验数据是否完整,若不满足条件,则使用弹出框提示
(2)技术分析:js和html整合,js中变量声明,js事件和函数,获取元素
(3)步骤分析:
    a.先有一个表单
    b.在form上添加一个事件 onsubmit="return checkForm()"
    c.编写checkForm这个方法
    d.获取每个表单子标签的内容
    e.判断是否满足要求,
      若满足,不用管它;
      若不满足,表单不能提交,返回false,且提示信息.
        
2.案例二:图片轮播
(1)需求:每隔3秒图片更新一下
(2)技术分析:bom中window对象的定时器方法
(3)步骤分析:    
    1.在首页上面绑定一个onload事件
    2.事件绑定的函数中编写一个定时器
    3.定时器每隔3秒更换图片:imgObj.src="";    

3.案例三-定时弹出广告    
(1)需求:打开页面后4秒,展示广告,2秒之后,该广告隐藏.再停2秒,继续展示
(2)技术分析:bom中window对象的定时器方法
(3)思路:确定事件->编写函数(获取元素,操作元素)
(4)步骤分析:    
    a.html页面,先把广告隐藏 display: none
    b.确定事件:页面加载成功事件 onload
    c.编写函数
    定时器:
    获取元素:document.getElementById("")
    操作css属性:
    document.getElementById("id").style.属性="值"

4.案例四-表单校验plus
(1)需求:提示信息不用弹出框,将信息追加在文本框后面
(2)技术分析:onsubmit,dom操作 
(3)思路:确定事件->编写函数(获取元素,操作元素)
(4)步骤分析:    
    a.表单
    b.表单提交的时候 确定事件 onsubmit()
    c.校验用户名和密码
    d.获取用户名和密码的对象及值
    e.判断内容,当为空的时候,获取相应的span元素,往span元素中显示错误信息

5.案例五-隔行换色    
(1)需求:一个表格,隔一行换一个色
(2)技术分析:onload,dom操作 
(3)思路:确定事件->编写函数(获取元素,操作元素)
(4)步骤分析:    
    a.html表格加载的时候 确定事件 onload
    b.编写函数
    获取元素(所有的tr元素)
    操作(若当前行是偶数的话加一个样式;若是奇数的话,加另一个样式)

6.案例六:全选或者全不选
(1)需求:将内容中复选框的选中状态和最上面的复选框状态保持一致
(2)技术分析:onclick,checked
(3)思路:确定事件->编写函数(获取元素,操作元素)
(4)步骤分析:    
    a.确定事件 最上面那个复选框的单击事件 onclick
    b.编写函数:让所有的复选框和最上面的复选框状态保持一致
    获取最上面这个复选框选中状态 通过checkbox的checked属性即可;
    获取其他的复选框,设置他们的checked属性即可

7.案例七-左右选中
(1)需求:将左边选中的内容移到右边
(2)技术分析:onclick,select对象.options,option对象.selected
(3)思路:确定事件->编写函数(获取元素,操作元素)
(4)步骤分析:    
    a.确定事件,按钮的单击事件
    b.编写函数:
    点击移动单|多个的:
        首先,获取左边选中的选项  select对象.options--数组
        遍历数组 判断是否选中 option对象.selected
        然后,将其追加到右边的下拉选中
        rightSelect对象.appendChild(option);
    点击移动所有的:
        获取左边的所有的选项,一个个的追加过去

8.案例八-省市联动
(1)需求:选中省的时候,动态的查询当前省下的所有市,然后展示在市的下拉选中
(2)技术分析:数组,onchange事件
(3)思路:确定事件->编写函数(获取元素,操作元素)
(4)步骤分析:    
    a.省的下拉选的选项中添加value属性,当成数组的索引
    b.初始化市
    c.选择省的时候,onchange事件
    d.编写函数
    通过获取的索引获取对应的市的数组 this.value;
    遍历数组,将数组里面的每个值组装成option 添加到select中即可

猜你喜欢

转载自blog.csdn.net/smiling_chang/article/details/81511810