如果同时对两个字符串进行算数运算,则会得到NaN
var score="seven" var score2="nice" var total=score*scpce2 //NaN
从函数中获取多个值
使用数组,函数可以返回多个值
function getSize(a,b,c){ var area=a*b var volume=a*b*c var size=[area,volume] return size } var areaOne=getSize(3,2,3)[0]
立即调用函数(IIFE)
两种写法
(function(){}()) (function(){})()
IIFE通常被用作一组代码的封装器,他能有效的保护变量,防止其他脚本可能出现的变量
作用域
全局变量需要使用更多的内存,局部变量只需在函数执行期间被保存
对象属性自己的this是绑定在该对象上
如果要删除对象的属性 delete obj["XX"]
若只是希望清楚属性值,只需将其设置为一个空的字符串
obj.XX=""
window对象代表了当前浏览器中的窗口和标签,位于浏览器对象的最顶端
window.innerHight 窗口高度(不包括浏览器边栏和工具栏)
window.innerWidth 窗口宽度(不包括浏览器边栏和工具栏)
window.pageXOffset 文档滚动的水平距离
window.pageYOffset 文档滚动的垂直距离
window.history 历史记录
window.screenX 鼠标点的X坐标相对于屏幕左上角
window.screenY 鼠标点的Y坐标相对于屏幕左上角
window.screen.width 获取屏幕的宽度
document.createElement()
document.createTextNode()
数字对象的常用方法
isNaN() 检测值是否为数字
toFixed() 将特定数字四舍五入至指定小数位数(返回一个字符串)
Math对象常用的方法
Math.PI 返回PI
Math.round() 将数字四舍五入到离他最近的整数
Math.ceil() 向上取整
Math.floor() 向下取整
Math.random() [0,1)
获取一个[0,10]的随机整数 var randomNum=Math.floor(Math.random()*10+1)
使用Date和Time对象
若要用指定日期和时间可以使用如下格式
YYYY,MM,DD,HH,MM,SS
1996,04,16,15,45,55
var today=new Date() var year=today.getFullYear() var est=new Date("Apr 16,1996 15 15:45:55") var difference=today.getTime()-est.getTime() difference=(difference/31556900000) var msg=document.getElementById("message") msg.textContent=Math.floor(difference)+"years of online travel advice"
switch 语句是是不会进行类型转换的,传过来的是什么值,就是什么值
var msg var level=2 switch(level){ case:1 msg="good luck" breaks; case:2 msg="second test" breaks; default: msg="3Q" }
javaScript 被称为弱类型语言,因为值得数据类型是可以改变的,其他一些语言则要求指定每个变量的数据类型,这种语言被称为强类型语言
因为存在强制类型转换,js当中的每一个值都可以作为布尔类型
假值:0,空字符串,NaN,没有被赋值的值
NaN虽然被视为假值,但是它不等于任何值,他甚至不等于他自己
break
这个关键字会导致循环结束,然后通知解析器继续执行循环体之外的数据
任何能够在循环之外赋值,并且在循环过程中不会被更改的量,都应该在循环外面进行重复计算,造成资源的不必要浪费
hasAttribute()
getAttribute() setAttribute()
removeAttribute()
动态和静态nodeList
nodeList看起来像一个数组,用起来也像一个数组,但他实际上不是数组,他是一种被称为集合的对象
在动态NodeList中,当脚本更新页面之后,NodeList也会同样进行跟新,以getElementBy开头的方法会返回NodeList,他们通常也比获取静态list更快
在静态NodeList中,当脚本更新页面之后,NodeList不会被更新,不会反映脚本所作出的更改
parentNode 父元素节点
previousSibling/nextSibling 前一个和后一个节点
textContent 该属性获取元素,及其子元素包含的文本
<li id="one"><em>fresh</em>figs</li> document.getElementById("one").textContent 他返回的是fesh figs