web 三

####JavaScript    --JS不区分单引号和双引号      注释有两种:/*注释内容*/     //注释内容             
    --脚本语言
    --直接嵌入HTML页面
    --一种网页编程技术,用来向HTML页面添加交互行为
    --具有与Java与C语言相似的语法
    --由浏览器解释执行代码,不进行预编译    由上到下逐行执行


  ## JS的使用方式
     -在实际定义时直接写JS
     -嵌入式:在script标签里写JS。该标签可以写在页面任意位置,通常都写在head里
     -文件调用式:在js文件中写JS。script标签只能做一件事,要么直接写JS,要么用它来引入JS。
      <script src=".js文件的相对路径" type="text/javascript"></script>


      -CSS外部样式表
      -当样式需要应用到很多页面的时候,就可以使用外部样式表。
      -创建样式文件(.css文件)  文件中只能包含样式规则




      -在<head></head>中引用样式文件:<link rel="stylesheet" href="文件名.css文件的相对路径"/> 
  


  ## 位于函数内的JS,页面加载时不会直接调用,
     浏览器仅仅是**定义了这个函数而已**,等待用户通过点击按钮等行为触发事件时才调用此函数。
     位于函数外的JS,页面加载时直接调用他们,即这些JS的执行时机是早于body中的元素的。


  ##从表单控件(input/select/textarea)中读写数据:(可输入
.读值用value)  (select及其子元素option也可以使用innerHTML)
    -读:input.value
    -写:input.value="值";
  ##从文本元素(div/h/p/span/..)中读写数据:(只读性元素
.读内容)
    -读:span.innerHTML
    -写:span.innerHTML="值";
  ##如何获取元素:
    document.getElementById("id");


  ##JS调试技巧
    -看控制台的报错信息
    -打桩:看程序执行的步骤,看每一步变量的值是否正确。
    -二分法+排除法:定位错误的位置
  ##JS中的条件表达式可以是任意表达式




    简述 arguments 对象的作用。
    --参考答案
      在函数代码中,使用特殊对象 arguments可以访问函数的参数。即,开发者在定义函数时,无需明确的为方法声明参数,
      也可以在方法体中使用 arguments 来访问参数。这是因为,arguments 是一种特殊对象,在函数代码中,表示函数的参数数组。
      正因为 arguments 表示参数组成的数组,因此,首先可以使用arguments.length检测函数的参数个数,
      其次,可以通过下标(arguments[index])来访问某个参数。
      这样,可以用 arguments 对象判断传递给函数的参数个数并获取参数,从而模拟函数重载。


  ##基础语法
  ##内置对象
    -String对象
    -Number对象
       -toFixed(n); 转换为字符串,并保留小数点后n位。(四舍五入)
    -Boolean对象
    -Array对象
       -reverse();
       -sort(); 
    -Math对象
    -Date对象
       -toLocaleTimeString();   上午9:55:36
       -toLocaleDateString();   2016/6/3
    -RegExp对象
       -reg.test(str);           重点  检测str中是否包含和reg相匹配的部分,包含返回true,否则返回false
       -reg.exec(str);                 非全局模式:找出首次匹配的部分;全局模式:第N次调用则找出第N个匹配的部分
       -str.replace(reg,目标);   重点  非全局模式:在字符串中找出符合reg的部分,将首次匹配的替换为目标字符串
                                         全局模式:将str中与reg匹配的部分全部替换为目标字符串  
       -str.match(reg);                 从str中找出和reg匹配的子串 
       -str.search(reg);                从str中找出首次和reg匹配的索引
    -Function
       -arguments();     重点
       -eval();          重点
  ##外部对象
   #BOM
    -window对象
       -alert();
       -confirm();
       -prompt();
       -setInterval();clearInterval();       重点
       -setTimeout();clearTimeout();         重点
     -location对象    
       -location.href = "";      重点
       -location.reload();
     -history对象
       -history.length;
       -history.back();
       -history.forward();
       -history.go(num);   num为正数等同于forward() num次;num为负数等同于back() num次;
     -screen对象
       -获取屏幕宽高(以像素为单位)
     -navigator对象
       -了解
  ##DOM
   #读写
    -名称:nodeName/nodeType
    -内容:innerHTML/InnerText
    -属性:setAttribute()/getAttribute()    (节点.className)
   #查询
    -根据ID:document.getElementById("id");                重点           标准,任何浏览器都支持
    -根据标签名:                                          重点           标准,任何浏览器都支持
               -document.getElementsByTagName("标签名");  在整个页面上根据标签名查询节点
      -父节点.getElementsByTagName("标签名");    在某节点下根据标签名查询其子节点
    -根据name属性:                                                       标准,任何浏览器都支持
               -document.getElementsByName("name属性值");   比如说单选按钮的name属性<input type="radio" name="sex"/>
    -根据class属性:                                                     非标
               -document.getElementsByClassName("class属性值"); 
    -根据层次关系:                                    
        -查询父节点:子节点.parentNode;                                        标准,任何浏览器都支持
-查询子节点:
      -父节点.childNodes;     虽是标准,但不适用,因为查询结果里包含了换行符(算一个子节点) 
      -父节点.getElementsByTagName("标签名");                           标准,任何浏览器都支持
      -父节点.children        非标
        -查询兄弟节点:
      -某节点.parentNode.getElementsByTagName("标签名")[i];             标准
      -某节点.previousElementSibling;                查询哥哥           非标
      -某节点.nextElementSibling;                    查询弟弟           非标
   #增删
    -创建:document.createElement("节点名");
    -追加:父节点.appendChild(节点1);         //将节点1追加到所有子节点之后
    -插入:父节点.insertBefore(节点1,节点2);  //将节点1插入到节点2之前(兄弟关系)
    -删除:父节点.removeChild(子节点);
          自己删自己:节点.remove();




####自定义对象   无论采用哪种方式创建出来的对象时一样的(Object)
  ##1.直接量(JSON)
      -直观、简单
      -例var obj = {"属性":"属性值","属性":"属性值"}        属性肯定是字符串,但属性值任何都可以(String、Number、Function等都行)
      -何时用:自己的方法封装数据,且已知数据时
  ##2.构造器
      -JS内置构造器
        -简单,灵活
-Date()/RegExp()/String()/Object()
-需要new的function才是构造器,否则是函数
-自己的方法封装数据,当时未知数据,以后才知道。
      -自定义构造器
        -麻烦、但直观
-封装的对象返回给他人使用
-自己声明一个函数,将此函数作为构造器使用
  ##3.create方法                 
      -最新版本提出的方法,很多浏览器目前并不支持
####JS事件处理机制
  ##冒泡机制
    -JS的事件是由内向外传播的
  ##作用
    -可以简化事件的定义
    -不需要再子元素上定义N次事件,仅仅需要在父元素上定义一次事件
  ##问题
    -在采用冒泡机制简化事件时,必须知道事件源
    -事件源:事件发生的源头(具体位置)
    -事件源可以通过事件对象获取






####jQuery的哪些方法返回jQuery对象
    -赋值的方法
    -取值的方法若返回的是节点,一般是jQuery对象
    -取值的方法若返回的是具体数据(字符、数字等),就是js内置对象
    ***可以随时打桩看此对象,有[]就是jQuery对象



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值