DOMContentLoaded事件触发时机,即dom tree完成但页面未必渲染完毕。
 
var a = [1,2,3,4];
var length = a.length;
alert((length - 1 in a));     返回true
 
当一个函数没有明确返回值的时候,实际上它返回 undifined 
当函数参数遗漏没有赋值时,该值将传入 undefined ,超过函数定义的参数数量以后的值会被忽视
可以传入任意数量参数,然后从arguments获取
 
JavaScript 获取 float,因为float是保留关键字,所以:
IE浏览器:
obj.style.styleFloat = "left";
其他浏览器:
obj.style.cssFloat = "left";
 

Array.prototype.slice.call(arguments,1)该语句涉及两个知识点:

arguments是一个关键字,代表当前参数,在javascript中虽然arguments表面上以数组形式来表示,但实际上没有原生数组slice的功能,因为它不是Array()的实例,这里使用call方法算是对arguments对象不完整数组功能的修正。

Array.prototype.slice.call 其实是对slice方法进行的静态调用。
[].slice(begin,end);
在JS中,[]就是一个数组对象,在执行时,先会建立对象,再执行自身对象下的slice方法,对这个数组进行切割。
 
slice()传入的长度为负数的时候,从后面开始算起:
"234567".slice(0,-2)          返回2345
注意:substring比 上面负slice和正则表达式来的快
 
简单值对象
当处于读取模式时,会实例化对应的对象,例如String,然后就可以使用上面的方法。如果是作为简单值调用的时候,实例化的对象就会被销毁。
 
typeof用来判断简单值(boolean,number,string),instanceof用来判断引用类型对象
 
如果代码有错误接下来的无法执行,而之前执行的代码(包括使用 window.setTimeout() 延迟执行的代码)依然能够使用。
 
null == undefined 虽然都输出true,但意义不同,undefined 表示定义了变量,但没有初始化变量,Null 代表一个不存在的对象
 
window.onload = fucntion() {}; == <body onload="func()">
因为 load 事件是发生在 window 对象上,但是在html 上没有代表 window 的标签 ,所以所以放到 body 元素上触发
 
arguments 提供 一个叫 arguments.callee 的属性,指向目前的函数,匿名函数的话可以用它来指向该函数
函数也是对象,因此可以 arguments.callee.something 把数据存储到该函数里
 
Number,String等简单值类似对象,因为它们有方法,但是这些方法不能改变,所以它们不是对象
 
var o = {};
o.x = new Object();
delete o.x;     // 上一行new的Object对象依然存在
o.x;            // undefined,o的名为x的属性被删除了
 
 
对象的属性在ECMAscript中是无序的,所以for in 循环返回的队列也是无法预测的,全部属性值都会被返回,但是返回的顺序各浏览器可能不同
 
元素的children属性只返回nodeType为element的子节点,childNodes会返回所有类型的。
 
ie浏览器会报告document ready状态,即使body元素还没有被创建,所以zepto在检测ready的时候添加了 && document.body是否存在body :
if (readyRE.test(document.readyState) && document.body) callback($)
 
innerText , innerHTML 和 outerText , outerHTML 相对应,但是outer 是用新对象替换掉原来的对象,它们也可以获取元素的内容,outerHTML 返回的值包括对象自己
 
当一个元素设置了margin之后,safari会自动把offsetLeft设为与marginLeft相等,offsetTop也一样
 
数组  length  不一定等于数组中项目的个数,它等于最高索引加1
var  arr  =  [1,2,3];
arr[99] = 4;                arr.length 就等于100了! 
 
在javascript中 无论是整数还是带小数(float)的都是存储在同一种数据类型里
 
switch(1+3){
case 2+2:
alert();                          switch里的值 和 case 在比较时使用 === 模式
break;
}
 
注意区别 没有定义的变量 和 定义了没有初始化的变量
var a; typeof a; 输出undefined
typeof b; 输出 b is not defined
 
检测是否支持:
var isSupported = document.implementation.hasFeature(“HTMLEvents”, “2.0”);        
 
if(a){ alert(); } 可以用 a && alert() 替代,&& 和 || 可以有更多灵活使用
 
通常在框架里下划线的变量方法都是内部使用的
 
不应该把undefined赋给变量,因为undefined主要是拿来和数据做比较,直到ECMA-262才被添加进来,在第三版中用来和null做区别
 
Typeof 后面跟一个创建了但没有初始化的值和完全没有创建的值返回的结果都是一样的undefined,所以创建了一个值之后最好初始化,用来区分。
 
write()  writeln() 应该在页面完全加载前调用, 在之后加载内容会清空,它会自动触发document.open()

 
 
replace() 定位时会移除掉页面包含的脚本,所以用它定位就没办法前进后退
location.replace("http://www.example.com/");
 
location 对象同时是window 和 document 的对象 因此:
window.location  === document.location  完全可以调换
 

javascript 备忘 细节 相关的更多相关文章

  1. Javascript备忘模式

    使用备忘模式,利用了函数的自定义属性,先看一个例子 var test = function (){} test.myAttr = "attr"; 这样,就给test加上了一个自定义 ...

  2. Javascript备忘复习笔记2

    一.函数与形参 1.函数 function abs(x) { if (x >= 0) { return x; } else { return -x; } } alert(abs(-10)); 2 ...

  3. Javascript备忘

    js输出对象类型: Object.prototype.toString.apply(s) 设置单行点击效果: obj.style.background = "#efefef";se ...

  4. Javascript 备忘

    1遍历所有属性 var person={fname:"John",lname:"Doe",age:25}; for (x in person) { txt=tx ...

  5. Javascript备忘复习笔记1

    一.字符串操作 1.大小写 var s = "hello"; undefined g = s.toUpperCase(); "HELLO" g; "H ...

  6. [整理记录备忘] Docker相关

    docker安装 linux上安装Docker(非常简单的安装方法) https://blog.csdn.net/qq_36892341/article/details/73918672 修改dock ...

  7. php 相关模块备忘

    在安装php的时候,不管是编译安装: ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...

  8. [备忘]Asp.net MVC 将服务端Model传递的对象转为客户端javascript对象

    <script type="text/javascript"> var jsObject = @Html.Raw(Json.Encode(Model.Objects)) ...

  9. [原]TCP/UDP使用细节备忘

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

随机推荐

  1. MMORPG战斗系统随笔(二)、浅谈场寻路Flow Field PathFinding算法

    转载请标明出处http://www.cnblogs.com/zblade/ 今天给大家带来一篇游戏中寻路算法的博客.去年,我加入一款RTS的游戏项目,负责开发其中的战斗系统,战斗系统的相关知识,属于游 ...

  2. Message:Unable to locate element 问题解决方法

    Python断断续续学了有一段时间了,总感觉不找个小项目练练手心里没底,哪成想出门就遇到"拦路虎",一个脚本刚写完就运行报错,还好做足了心里准备,尝试自行解决. 或许网上有相关解决 ...

  3. Template7插入动态模板

    要完成的效果如下图 其中下面添加出来的订单号和订单总价可以看作是接口请求的数据 实现步骤: 1 下载template7:https://github.com/nolimits4web/template ...

  4. html阶段测试

    1.简述src和href的区别? 2.在html页面的head中定义属性<meta http-equiv="X-UA-Compatible" content="IE ...

  5. MSSQL查询数据分页

    这几天刚好碰到数据的分页查询,觉得不错,Mark一下,方法有两种,都是使用select top,效率如何就不在这讨论 方法1:利用select top配合not in(或者not exists),查询 ...

  6. ovs2.7 在系统重启后,再次使用时提示数据库无法连接的问题。

    问题现象如下,ovs开始安装后,对ovs的操作是正常的,但是,现在系统重启后,OVS的操作第一条命令就失败,如下: 问题解决方法: 参考  http://blog.csdn.net/xyq54/art ...

  7. 前端要革命?看我在js里写SQL

    在日新月异的前端领域中,前端工程师能做的事情越来越多,自从nodejs出现后,前端越来越有革了传统后端命的趋势,本文就再补一刀,详细解读如何在js代码中执行标准的SQL语句 为什么要在js里写SQL? ...

  8. 深度学习入门篇--手把手教你用 TensorFlow 训练模型

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:付越 导语 Tensorflow在更新1.0版本之后多了很多新功能,其中放出了很多用tf框架写的深度网络结构(https://git ...

  9. Codeforces A. Trip For Meal

    A. Trip For Meal time limit per test 1 second memory limit per test 512 megabytes input standard inp ...

  10. Andrid 高级程序员面试题

    ==========================20150518===================================一. Acitvity组件 1. 生命周期&kille ...