1.Typeof.显示数据类型。java
例: alert(typeof 5); //numbernode
String字符串 number 数值 Boolean 布尔值express
Undefined未定义的值 function 函数编程
Object 对象json
2.undefined 数组
声明了变量后,进行初始化才会让变量结果为undefined,若是没有声明,只有在使用typeof的状况下,能够看到变量的类型为undefined。浏览器
3.null值是一个空对象指针,因此对null使用typeof会返回一个‘object’,表示是一个对象。若是定义变量在将来准备保存什么值,最好将变量初始化为nullapp
4.布尔值转化。 例如传入数值, var Boolean1=Boolean(1); 返回true,若是是0,返回false。一样用于对象的时候,对象为null返回false;函数
例子: var message=“hellow world”;post
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.四、由于第二个小数点是无效的了。
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对象的函数。
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; 背景图片不要重复铺盖。