一九八网络科技吧 关注:153贴子:3,782
  • 10回复贴,共1

JS学习大纲

只看楼主收藏回复

对于即将到来的JS学习,尽情期待吧!!!


1楼2014-09-04 11:56回复
    六、运算符与表达式
    算术运算符 + - * / % ++ --
    + 加法
    + 连接2个字符串
    注意 10+5+*abc*+20=?
    % 取余 余数的符号与前的数有关【弱类型允许浮点数取余】注意:浮点数取余得到的是浮点数
    b=a++ 先赋值(先把a的值赋给b),然后a自增1
    b=++a 先a自增1,然后再整个结果赋值给b
    赋值运算符 = += -= *= /= %= a+=5 <==> a=a+5
    条件运算符 > < == >= <= != === !==
    比较两边最好使用相同类型,比较完之后为布尔型
    逻辑运算符 && || ! ^
    a&&b a为true且b也为true ,整个表达式为true
    逻辑与(&&)短路:如果a为假,那么b不执行
    a||b a,b只要有一个为true,整个表达式为true
    逻辑或(||)短路:如果a为真,那么b不执行
    !a a为true表达式为false,a为false表达式为true
    a^b a和b不同的时候表达式为true
    什么为假:false、0、0.0、**、null
    注:*0*为真;未声明变量什么也不是
    //位运算 & | >> >>> <<
    其他运算符 三元运算符 条件表达式?表达式1:表达式2 如果条件表达式为真,整个表达式的值为表达式1,否是就为表达式2
    七、流程控制
    顺序结构
    默认:从上往下
    分支结构
    1.单分支
    if(bool){
    }
    2.双分支
    if(bool){
    }else{
    }
    3.多分支
    if(bool){
    }else if(){//else与if必须分开
    }
    ....
    else{
    }
    范围比较多使用if分支
    switch(变量){
    case 值1:
    表达式
    break;
    ....
    [default:]
    }
    单个值比较多使用switch分支
    4.嵌套分支
    if(bool){
    if(bool){
    ...
    }
    }else{
    if(bool){
    ...
    }
    }
    循环结构
    while
    while(条件表达式){
    代码段(一条或多条)
    }
    当条件表达式为真的时候,执行代码段
    代码段有可能不知道
    do...while
    do{
    代码段(一条或多条)
    }while(条件表达式)
    代码段至少会执行一次
    for
    for(赋值表达式;条件表达式;循环变量变化){
    代码段(一条或多条)
    }
    循环嵌套
    首先
    退出、中止循环 break、continue
    注意:退出双层循环
    st:
    for(var i=1;i<10;i++){
    for(var j=1;j<=i;j++){
    break st;//退出双层循环 与goto语法不同
    document.write(j+*×*+i+*=*+(j*i)+*&nbsp;&nbsp;*);
    }
    document.write(*<br />*);
    }
    1 2 3 4 5 6 7 8 9 10
    11 20
    21.. 30
    onmouseover onmouseout
    八、函数
    1.什么是函数
    2.如何声明函数
    3.如何使用函数
    是一段完成*指定功能*已命名的代码段。
    函数只用*调用*才能使用,调用:就是通过名称[可以再声明之前,也可以再声明之后]
    function 函数名([参数1,参数2...]){
    功能段(一条,或多条)
    [return 值] //返回到哪:谁调用就返回哪
    }
    形参,实参
    返回值(可选)
    函数名不加(),代表函数本身[可以看做数据类型,也可以看做变量]
    var a=function(){}
    函数没有默认参数
    回调函数:函数作为参数
    1.函数的作用 --决定去不去用
    2.函数的参数 --决定怎么用
    3.返回值 --决定调用后如何处理
    注:写函数注释的时候,应该写好这3个方面的信息
    全局变量
    函数外面声明的变量是全局变量
    var a=10;
    函数里面声明的变量是局部变量
    系统函数
    Global 对象
    escape 方法 | eval 方法 | isFinite 方法 | isNaN 方法 | parseFloat 方法 | parseInt 方法 | unescape 方法
    九、对象
    1)什么是对象
    2)如何声明对象
    3)如何使用对象
    1.基于对象的操作方式(所有的操作都是对象形式)
    2.将相关的操作使用一个对象完成,看做是一个整体
    对象中存的内容
    一、属性(变量)
    二、方法(函数)
    都是和这个对象相关的
    一、对象的声明
    二、对象的使用
    三、系统对象的使用
    步骤:
    1.找到对象
    2.实例化对象
    3.操作对象
    对象实例.属性 (取值,赋值) 属性不能变量
    对象实例[*属性*] 属性可以是变量
    对象实例.方法()
    自定对象
    声明对象的方法
    第一种:
    function Play(){
    }
    var p=new Play();
    //属性
    p.width=300;
    //方法
    var p.autoPlay=function(){
    alert(*#######*);
    }
    第二种:
    var p=new Object();
    //属性
    p.width=300;
    //方法
    var p.autoPlay=function(){
    alert(*#######*);
    }
    第三种:
    function Play(){
    var p=new Object();
    //属性
    p.width=300;
    //方法
    var p.autoPlay=function(){
    alert(p.width);//alert(this.width)
    alert(*#######*);
    }
    return p;
    }
    第四种:只有属性
    {属性1:值1,属性2:值2...}
    遍历
    for(变量 in 对象){
    }
    var p=Play();
    var pro=**;
    for(pro in p){
    alert(pro);
    }
    for(pro in p){
    alert(p[pro]);
    }
    with(对象){
    所有方法如果不加对象都是括号中对象的方法
    }
    document.write(*<table>*);
    document.write(*<tr>*);
    document.write(*<td>*);
    document.write(*</td>*);
    document.write(*</tr>*);
    document.write(*</table>*);
    width(document){
    write(*<table>*);
    write(*<tr>*);
    write(*<td>*);
    write(*</td>*);
    write(*</tr>*);
    write(*</table>*);
    }
    var str=new String(*abc*);<==>var str=*abc*;
    数学对象不需要new
    十、内置JS对象
    字符串对象
    数学对象
    Math.random();
    <META http-equiv="refresh" content="2">
    数组
    时间对象


    3楼2014-09-04 11:59
    回复
      十一、数组
      数组
      1、数组的作用
      只要是批量的数据都需要使用数组声明
      2、如何声明数组
      1.快速声明数组的方法
      var 数组名=[元素1,元素2,...];
      2.声明方法
      function MyArray(){
      this.length=arguments.length;
      for(var i=0;i<arguments.length;i++){
      this[i]=arguments[i];
      }
      this.sort=function(){
      }
      }
      //var arr=new MyArray(*12*,*abc*,*ee*);
      var arr=new Array(*12*,*abc*,*ee*);
      alert(arr.length);
      alert(arr[1]);

      var arr=new Array(5);//数组有5个元素
      3、遍历数组
      var arr=[1,5,6,7,8,3,9];
      document.write(arr);
      arr.sort();
      arr.sort(function(a,b){
      if(a<b){
      return -1;
      }else if(a==b){
      return 0;
      }else{
      return -1;
      }
      });
      for(var i=0;i<arr.length;i++){
      document.write(arr[i]);
      }
      4、数组操作(内置方法)
      参加手册
      DOM
      作用:
      DOM(Document Object Model)
      1.document 文档 html xml (标记语言)
      2.object 对象
      如果要使用js操作html文档,先需要把html文档结构转换为JS对象
      1)操作属性
      2)操作内容
      innerText 纯文本 火狐用textContent
      innerHTML 可以有格式
      表单:value
      3)操作样式
      对象.style.backgroundColor=*red*;
      -去掉,后面的单词首字母大写
      offsetWidth//宽度
      offsetHeight//高度
      对象.className=*name1 name2*;
      对象.className=**;//删除样式
      alert(document.all){
      alert(*IE*);
      }else{
      alert(*FF*);
      }
      转换对象的两种形式
      1.标记名(多个,数组)、id(唯一)、name(多个)
      document中的三个方法
      var o=document.getElementsByTagName(*p*);
      var o=document.getElementById(*uid*);
      var o=document.getElementsByName(*n*);


      4楼2014-09-04 11:59
      回复
        JS事件:
        一、事件源:任何一个HTML元素
        二、事件
        鼠标:
        click 单机
        dblclick 双击
        contextmenu(body)文本菜单
        mouseover 放上
        mouseout 离开
        mousedown 按下
        mouseup 抬起
        mousemove 移动
        键盘:
        keypress 键盘事件 [数字字母键[回车,esc]可以,功能键,活动键获取不了]
        keyup 抬起 [所有的键都可以]
        keydown 按下
        文档:
        load 加载[页面加载完后触发]
        unload 关闭
        beforeunload关闭之前
        表单:
        focus 焦点
        blur 失去焦点
        submit 提交事件
        change 改变
        其他:
        scroll 滚动事件
        select 选择事件
        三、事件处理程序
        方法加事件
        第一种:
        格式:<tag on事件="事件处理程序" />
        第二种:
        <script>
        对象.on事件=事件处理程序
        </script>
        事件对象(event):
        属性:
        1.srcElement 事件源
        2.keyCode 键盘码
        onkeyUp="if(this.value!=this.value.toUpperCase())this.value=this.value.toUpperCase();"
        <body onkeypress=*show()*>
        <script>
        function show(){
        if(event.keyCode==*27*){
        window.close();
        }
        }
        </script>
        </body>
        window.status=str;//窗口状态栏
        window.document.title=**;
        事件 event window.event
        1.srcElement 事件源对象
        2.keyCode 事件发生时的键盘码
        3.clientX,clientY
        4.screenX,screenY
        document.onmousedown=function(e){
        alert(e);//火狐中e表示event
        alert(event)//IE有效
        var ev=e || window.event;
        var cx=ev.clientX;
        var cy=ev.clientY;
        var sx=ev.screenX;
        var sy=ev.screenY;
        }
        clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。
        clientY 设置或获取鼠标指针位置相对于窗口客户区域的 y 坐标,其中客户区域不包括窗口自身的控件和滚动条。
        offsetX 设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。
        offsetY 设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。
        screenX 设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标。
        screenY 设置或获取鼠标指针位置相对于用户屏幕的 y 坐标。
        x 设置或获取鼠标指针位置相对于父文档的 x 像素坐标。
        y 设置或获取鼠标指针位置相对于父文档的 y 像素坐标。
        <img id=*tu* style="position:sbsolute;left:-400px;top:-400px;" />
        var tu=document.getElementById(*tu);
        document.onmousedown=function(e){
        alert(e);//火狐中e表示event
        alert(event)//IE有效
        var ev=e || window.event;
        var cx=ev.clientX;
        var cy=ev.clientY;
        tu.style.top=y+20;
        tu.style.left=x+20;
        }


        5楼2014-09-04 12:00
        回复
          BOM 浏览器对象
          一、浏览器本身自己有的一些对象,不用创建就可以使用
          window : 当前浏览器窗体
          属性:
          status:状态栏
          opener:
          closed:
          方法:
          alert();
          confirm();
          1.倒计定时器:timename=setTimeout("function();",delaytime);//delaytime毫秒
          2.循环定时器:timename=setInterval("function();",delaytime);
          clearTimeout(对象) 清除已设置的setTimeout对象
          clearInterval(对象) 清除已设置的setInterval对象


          6楼2014-09-04 12:00
          回复
            程序猿 程序猿 序猿 猿 猿 袁。。。


            IP属地:湖南7楼2014-09-04 12:11
            回复
              喵 留名


              来自Android客户端8楼2014-09-04 16:29
              回复
                马 克


                9楼2014-09-04 20:22
                回复
                  能不能不要这么高档 我一开始还以为是剑圣那


                  IP属地:贵州10楼2014-09-12 15:47
                  回复
                    我只是个酱油、漂过、路过的路人甲。不知道有没有十五个字。


                    IP属地:湖南12楼2014-09-22 11:49
                    收起回复