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. iOS根据域名获取ip地址

    引入头文件 #include <netdb.h> #include <sys/socket.h> #include <arpa/inet.h> //根据域名获取ip ...

  2. java初学者(新手)应该如何选择学习教材与网站

    作者:天天向上 1.学习教材选择推荐<JAVA核心技术>,想多看点代码多练习可以找<java开发实战经典>&amp;amp;lt;img src="https ...

  3. 《effective Go》读后记录

    一个在线的Go编译器 如果还没来得及安装Go环境,想体验一下Go语言,可以在Go在线编译器 上运行Go程序. 格式化 让所有人都遵循一样的编码风格是一种理想,现在Go语言通过gofmt程序,让机器来处 ...

  4. Query DSL(1)

    https://www.elastic.co/guide/en/elasticsearch/reference/2.3/query-dsl.html Query DSL GET _search { & ...

  5. Hadoop 一: NCDC 数据准备

    Hadoop 本文介绍Hadoop- The Definitive Guide一书中的NCDC数据准备,为后面的学习构建大数据环境; 环境 3节点 Hadoop 2.7.3 集群; java vers ...

  6. bzoj2330(差分约束)

    题解:这道题是练差分约束的一道好题目吧,我具体在代码中注释,这样更加好理解, 为什么求最长路呢?因为这样保证了满足条件,如果存在正权环,就表示无解,就是 正权环之间不断要更多的糖果才行. #inclu ...

  7. 混合高斯模型(Mixtures of Gaussians)和EM算法

    这篇讨论使用期望最大化算法(Expectation-Maximization)来进行密度估计(density estimation). 与k-means一样,给定的训练样本是,我们将隐含类别标签用表示 ...

  8. ImageSharp一个专注于NetCore平台图像处理的开源项目

    今天大家分享的是一个专注于NetCore平台图像处理的开源项目,老实说为这篇文章取名字想了5分钟,可能是词穷亦或是想更好的表达出这款开源项目的作用:这个项目在图像处理方面有很多功能,如:缩放,裁剪,绘 ...

  9. 将 Intent 序列化,像 Uri 一样传递 Intent!!!

    一.真的需要new一个Intent吗? 在 Android 中,打开一个 Activity ,有多少种方式?不过不管是使用什么方式,最终都没办法逃避创建一个 Intent ,然后startActivi ...

  10. NOIP初赛 之 哈夫曼树

    哈夫曼树 种根据我已刷的初赛题中基本每套的倒数第五或第六个不定项选择题就有一个关于哈夫曼树及其各种应用的题,占:0-1.5分:然而我针对这个类型的题也多次不会做,so,今晚好好研究下哈夫曼树: 概念: ...