• 零散的学习总结


    零散总结:

    1 .高级程序设计:

    1.Typeof.显示数据类型。

    例: alert(typeof 5);   //number

    String字符串  number 数值  Boolean 布尔值

    Undefined未定义的值  function 函数

    Object 对象

    2.undefined  

    声明了变量后,进行初始化才会让变量结果为undefined,如果没有声明,只有在使用typeof的情况下,可以看到变量的类型为undefined。

    3.null值是一个空对象指针,所以对null使用typeof会返回一个‘object’,表示是一个对象。如果定义变量在未来准备保存什么值,最好将变量初始化为null

    4.布尔值转化。 例如传入数值, var Boolean1=Boolean(1); 返回true,如果是0,返回false。同样用于对象的时候,对象为null返回false;

    例子:  var message=“hellow world”;

       If(message){

       Alert(‘value is true’)

    最常见的布尔值转换,如果有这个变量,或者其他用法,有这样一个用法,则会执行相印的操作。

    5.因为浮点数的精确性为题,0.1+0.2的值的结果回事0.300000000000004,精确到17位,明显数值不正确,所以永远不要测试某个特定的浮点数值。

    6.数值转换。主要涉及三个方法。Number()。常规的将括号内的转化为数值,如果是没有意义的内容则会转化为NAN,,空的字符串转化为0;

    Parseint() 忽略字符串前面的空格,如果第一个字符串不是负号或者数字字符,那么就会返回NaN。会一直解析到非数字字符。因为小数点不是数字字符,所以不会返回小数。可以增加一个说明解析目标的类型的数字。

    parseFloat和parseInt类似,会解析到一个无效的浮点数字为止。例如22.4.2会被解析为22.4、因为第二个小数点是无效的了。

    7.在看到加减操作符的用法时想到,如果要做一些判断的函数,多个条件的情况下,如果不用特殊判断符号,使用转化为number()一类的方法检验字符,数据是否存在,再进行加减操作,例如NaN加任何操作数的结果都是NaN,可以说明,两个数据相加,其中有一个不是数值。

    8.字符串和数值出现在加法中的时候,效果是将字符串和数值拼接起来,例如“sum of a and b”+a+b  的结果是 “sum of a and b ab” ;只有加上括号才会将字符串和数值的运算分开。

    注意:null会转化为0,true会转化为1.

    9.大小符号。  字符串比较会首字母的字符编码大小,

    10.条件操作符,有boolean用法,boolean_expression?ture_value:false_value;

      If(a>b)?a:b;

    11.逗号操作符一般被用于同时给多个变量赋值。

    12.do-while的用法主要是函数内容至少会被执行一次,先do后while。

    13.js可以使用方括号来表示访问对象的属性,在使用方括号的时候应该注意,要将属性以字符串的形式放在方括号中。例如:  alert(object[“id”]);

    14.要访问函数的指针而不执行函数的话,必须去掉函数名后面的那对圆括号。

    15.Arguments主要做用时保存函数参数,他有一个属性,callee,该属性是一个指针,指向拥有这个arguments对象的函数。

     

    二:DOM编程艺术

    1.相对于在<head></head>中添加<script>标签来存放javaScript和引用.js文件在文档的头部放<script>标签引用javaScript这两种方法而言,更好的方法是:

    在上述两种方法加在HTML文档最后,</body>标签之前。 这样能使浏览器快速的加载页面.

    2.charset标签属性规定在外部脚本文件中使用的字符编码。或者文档中使用的字符编码。  -------charset="UTF-8";

    3.“<!-”的效果和//的单行注释效果一样。不需要结尾。

    4.再记忆一次,变量名只用用 _ 或者美元符号$或者英语字母来开头,第一个字母不允许使用数字。内容可以包含字母,数字,美元符号和下划线。下划线可以让比较长的变量名更容易阅读(长的变量名里每个新单词的首字母用大写也可以达到同样的效果如:var firstClass='hapyy' //happy是字面量)。

      *  一个好的习惯:命名变量时,我们才用在不同单词之间加下划线的方式,命名函数时,我们才用第二个单词首字母大写的形式进行区分。

    5.严格比较“===”,除了比较值以外还会比较变量的类型。

    6.var 可以保证在函数内做局部变量时不受全局同名变量的影响。

    7.谨记:getElementByID()中为元素的id属性值,必须放在单引号或者双引号之间。!!返回的是一个对象,如果用alert弹出的话会显示一个object;每个节点都是一个对象。

    8.getElementsByTagName返回的是数组!哪怕只有一个指定属性的元素,返回的也是数组!

     *- getElementById和getElementsByTagName可以组合使用:

         var pp=document.getElementById("qq");

         var ww=pp.getElementsByTagName("*");    //参数是标签的名字

    9.getElementsByClassName()可以同时查找带有多个类名的元素,只要在()中用空格分开就可以啦。 (class1 class2);

    9.1. 获取和设置属性。 getAttribute

          object.getAttribute(attribute)  // 参数是打算查询的属性名字。

           var title-text=span.getAttribute("title")。

                变量      目标元素           属性名

       设置属性:setAttribute :

        var  shopping=document.getElementById("purchases");

          shopping.setAttribute("title","a list of goods");

    10.if(something)和if(something!=null)完全等价,

    判断写法更加简单:if(somethig)alert(XXX)

    11.尽量少的访问DOM和尽量减少标记!

      if(document.getElementById("").length>0){

         var links=document.getElementById("");

            for(){}}

    两次使用DOM访问了其中的元素,浏览器会搜索整个DOM树,从而查找可能匹配的元素,浪费了一次搜索。      更好的方式是:

         var links=document.getElementById("");

            if(link.length>0)....

    *当要获取多个种类的元素节点时,为了解决访问次数过多的问题,应当考虑到设置参数,进行传参的形式。

    12.注意合并放置脚本,多个脚本放在一个js文件中一起做引用。

    13。压缩脚本,删除不必要的字节和注释,工作者可以准备两个版本,一个工作副本和一个精简版本。区分开来,方便修改注释和实际工作。

    14.DOM方法添加标签。 创建元素节点。

          CreateElement: var para=document.createElement(nodeName).

           var testdiv= doucument.getElementById(" ")

          testdiv.appendChild(para);   // 为变量插入标签

         等同于:  document.getElementById("").appendChild(document.createElement("nodeName").

    15.createTextNode方法,创造文本节点。

         var txt=document.createTextNode(text);

    16.在已有元素前插入一个新的兄弟元素:insertBefore(方法)。

       parentElement.insertBefore(newElement,targetElement)。  

         父元素         方法        新元素      目标元素 

    无需知道父元素到底是谁,因为用了目标元素的parent属性。

    17。在已有元素之后插入一个新的兄弟元素。  DOM没有提供insertAfter()方法,但是我们可以自己创建一个这样的方法。

         fuction insertAfter(newElment,targetElement){

               var parent=targetElement.parentNode;

              if(parent.lastChild==targetElement){

              parent.appendChild(newElement;

    }else{

              parent.insertBefore(newElement,targetElement.nextSibling);

    18.创建动态标记的设计思路初体验:

    <script>

            document.write("<p>this is inserted.</P>");

            </script>

    凌乱的笔记:

    1.如果想让双引号或者单引号在代码里表达正常的使用方法,可以用反斜杠,

    放在引号前来包裹要操作的单引号和双引号。

    2."This string has "double quotes" in it"

    当我们需要在字符串中使用与开头结尾相同的引号时,我们需要对引号进行 转

    义 。如果你有很多双引号的字符串,使用转义字符可能导致难以阅读。这时候

    可以使用单引号。

    'This string has "double quotes" in it. And "probably" lots of them.'

    4.     case "a":  answer="apple"; break;

      注意case值为字符串的时候要加双引号。

     多个case可以一起执行相同的函数。 

    case 1:

    case 2:

    case 3:   result="xx";

       break;

    5.用[]引用的时候要注意,属性如果是字符串,应该加上引号。一般用于引用的

    属性带有空格的时候

             中括号操作符的另一个使用方式是用变量来访问一个属性。当你需要遍

    历对象的属性列表或查表时,这种方式极为有用。

    这有一个使用变量来访问属性的例子:

    var someProp = "propName";

    var myObj = {

      propName: "Some Value"

    }

    myObj[someProp]; // "Some Value"

    当我们通过变量名访问属性的时候,不需要给变量名包裹引号。因为实际上我们

    使用的是变量的值,而不是变量的名称。

    中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算

    符。

    中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。

    中括号运算符可以用纯数字为属性名。点运算符不能。

    中括号运算符可以用js的关键字和保留字作为属性名。点运算符不能

    6.json  在访问json对象的值的时候,遇到带空格的情况采用[]。逐级用 . 来

    访问目标值。

    1.CSS3 border-radius

    给div元素添加圆角边框:

    div

    {

      border:2px solid;

      border-radius:25px;

    }

    2.利用父元素高度不设置,子元素的padding-top属性,将内容撑开。这时虽然元素高度不变,但是视觉效果是高度自适应了。

      padding-top=width。或者成比例

    3.当margin设置成百分数的时候,其top right bottom left的值是参照父元素盒子的宽度进行计算,在w3c的规范中也是这样描述的: margin 的百分比值参照其包含块的宽度进行计算,同样的padding如果设置成百分数的话,其盒子模型和margin是一样的。

    4.background-position百分比计算公式:

    background-postion:x y;

    x:{容器(container)的宽度—背景图片的宽度}*x百分比,超出的部分隐藏。

    y:{容器(container)的高度—背景图片的高度}*y百分比,超出的部分隐藏。

    如果您仅规定了一个关键词,那么第二个值将是"center"。

    默认值:0% 0%。

    5.background-repeat:no-repeat;  背景图片不要重复铺盖。

  • 相关阅读:
    最大子数组
    链表插入排序
    链表求和
    有效回文串
    排球比赛计分系统
    超市收银系统
    三层架构
    Wpf+数据库代码封装+策略模式封装
    封装逻辑用策略模式实现
    代码封装
  • 原文地址:https://www.cnblogs.com/oldchicken/p/6520679.html
Copyright © 2020-2023  润新知