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. TETELaser Cutting System 不连续吹起的问题

    TETELaser Cutting System 不连续吹起的问题    :配置 加工参数-->机器参数-->信号灯和激光器报警:黄灯索引==EX14   红灯索引==EX15 绿灯索引= ...

  2. C++格式化输出的好东西

    s = FormatFloat("0.######", d); 最多保留6位s = FormatFloat("0.000000", d); 始终保留6位s = ...

  3. ElasticSearch入门(1) —— 集群搭建

    一.环境介绍与安装准备 1.环境说明 2台虚拟机,OS为ubuntu13.04,ip分别为xxx.xxx.xxx.140和xxx.xxx.xxx.145. 2.安装准备 ElasticSearch(简 ...

  4. 80端口被system 占用

    1 运行'netstat -ano'发现80端口被pid=4的进程占用 2 打开任务管理器,发现pid=4的进程,其实是system进程,其对应的进程描述是NT kernel & system ...

  5. Spring详解(七)------事务管理

    PS:本篇博客源码下载链接:http://pan.baidu.com/s/1mi3NhX2 密码:3io2 1.事务介绍 事务(Transaction),一般是指要做的或所做的事情.在计算机术语中是指 ...

  6. Java历程-初学篇 Day06 循环结构

    前记:永远不要写死循环 一,while循环 先判断,再执行 while(条件){ //代码块; 迭代; } 示例: 二,do while语句 先执行一次,再判断 do{ //代码块; 迭代; }whi ...

  7. Asp.net中防止用户多次登录的方法

    在web开发时,有的系统要求同一个用户在同一时间只能登录一次,也就是如果一个用户已经登录了,在退出之前如果再次登录的话需要报错. 常见的处理方法是,在用户登录时,判断此用户是否已经在Applicati ...

  8. ch3-form(get/post) $.ajax(get/post)

    1 http(get)请求 提交的数据 用req.query接收 1.1 router.get() //http(get)请求方式 1.2 接收http(get)方式提交的数据 req.query 方 ...

  9. vim 环境设定(通用)

    有没有发现,如果我们以 vim 软件来搜寻一个档案内部的某个字符串时,这个字符串会被反白,而下次我们再次以 vim 编辑这个档案时,该搜寻的字符串反白情况还是存在呢!甚至于在编辑其他档案时,如果其他档 ...

  10. ZOJ2401 Zipper 双塔式 DP

    遇到双塔DP,写一下. flag是为了避免memset多次导致的时间浪费. #include<cstdio> #include<cstdlib> #include<ios ...