javascript权威指南学习笔记3
今天看到第四章,记录一下其中的几个点,俗话说:好记性不如烂笔头嘛。
4.9 in运算符和instanceof运算符
in运算符希望它的左操作数是一个字符串或可以转化为字符串,希望它的右操作数是一个对象。如果右侧的对象拥有名为左操作数值的属性名,那么表达式返回true,例如:
var point={x:1,y:1};//undefined
"x" in point;//true
"z" in point;//false
"toString" in point;//true
var data=[7,8,9];//undefined
"0" in data;//true
"1" in data;//true
1 in data;//true
3 in data;//false
instanceof运算符希望左操作数是一个对象,右操作数标识对象的类。如果左侧的对象是右侧类的实例,则表达式返回true,否则返回false。比如:
var d=new Date();//undefined
d instanceof Date;//true
d instanceof Object;//true
d instanceof Number;//false
var a=[1,2,3];//undefined
a instanceof Array;//true
a instanceof Object;//true
a instanceof RegExp;//false
4.10 逻辑表达式(&&、||、!)
这里有一些注意事项:&&的操作数不一定是布尔值,可以是一些真值或假值(null等),要牢记它的判断顺序,如果左侧值是假,则不判断右侧,直接返回左侧的结果。否则,返回右侧的值。即“”短路“。
var o={x:1};
var p=null;
o&&o.x;//
p&&p.x;//null
而||的判断顺序则是如果左侧为真,那么返回这个真值,否则再计算右侧的值,返回。
var max=max_width||preference.max_width||500;//默认参数
//将o的成员属性复制到p中,并返回p
function copy(o.p){
p=p||{};//如果像参数p中没有传入任何对象,则使用一个新创建的对象
//函数体内的主逻辑
}
4.12 表达式计算(eval)
eval()只是一个参数。如果传入的参数不是字符串,它直接返回这个参数。如果是字符串,它会把字符串当成javascript代码进行编译,如果编译失败则抛出一个语法错误异常(SyntaxError)。如果编译成功,则开始执行,并返回字符串中最后一个表达式或语句的值,如果最后一句没有值,则返回undefined。如果字符串抛出异常,这个异常将把该调用传递给eval()。
关于eval()的作用域问题:eval查找变量的值和定义新变量和函数的操作和局部作用域中的代码完全一样。
eval具有更改局部变量的能力。主要看示例吧:
var geval=eval;
var x="global",y="global";
function f(){
var x="local";
eval("x+='changed';");
return x;
}
function g(){
var y="local";
geval("y+='changed';");
return y;
}
console.log(f(),x);// localchanged global
console.log(g(),y);// local globalchanged
而严格意义下的eval不能定义新的局部变量。将eval列为保留字,使之更像一个运算符。
4.13 其他运算符
条件运算符 ?: 等价于if else的简写
typeof运算符 常用写法:(typeof value=="string")?"'"+value+"'":value;
delete运算符 var声明的变量是无法删除的
void运算符<a href="javascript:void window.open();">打开一个新窗口</a>
javascript权威指南学习笔记3的更多相关文章
- JavaScript 权威指南-学习笔记(一)
本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! ## JavaScript 权威指南-学 ...
- JavaScript权威指南学习笔记6
这两天主要翻看了书中的第18-22章,重点看了第17章:事件化处理,其它几章节主要是翻了下书知道有相关的概念,没有真正理解其中的内容,或者没有考虑究竟如何能把里面的内容应用到实际的项目中.说的讽刺一点 ...
- javascript权威指南学习笔记1
打开这本书,进入到javascript的世界.以前都是看各种视频,感觉什么收获也没有,反而弄得脑袋混乱,希望能够按照这本书的节奏掌握javascript这门语言,为我的前端学习打下基础. 学习前准备: ...
- JavaScript权威指南学习笔记4
今天看了第9.10.11章,感觉收获最大还是正则表达式那章节,不过这些不用太多脑子思考,问题用到了直接查书就可以了,下面分别总结一下: 第9章类和模块:分9节,前面8节都是在讲类相关的知识,最后一节讲 ...
- Javascript权威指南学习笔记
第二章:词法结构 ;function a(){alert(2)};//前面的分号保证正确地语句解析 第三章:类型.值和变量 基本概念: 1.数据类型---能够表示并操作的值的类型叫做数据类型. 2.变 ...
- javascript权威指南学习笔记2
Javascript语言核心(2~12章) 第三章:类型.值.变量 1.数字: overflow(Infinity, -Infinity).underflow(+0,-0) 非数字值:它和任何值都不相 ...
- JavaScript权威指南学习笔记5
下午在杭图回去前看了书中第二部分的13-17章,看的很粗,感觉大部分东西自己已经知道或者平时开发中不会用到,很多章节只是简单的翻了一下,没有仔细思考里面说到的道理,下面对各章节简单的记录下. 第13章 ...
- HTTP权威指南-学习笔记
目录 HTTP权威指南-学习笔记 HTTP: Web的基础 URL与资源 HTTP报文 连接管理 HTTP结构 Web服务器 代理 缓存 集成点: 网关,隧道及中继 Web机器人 识别,认证与安全 客 ...
- CSS权威指南学习笔记系列(1)CSS和文档
题外话:HTML是一种结构化语言,而CSS是它的补充:这是一种样式语言.CSS是前端三板斧之一,因此学习CSS很重要.而我还是菜鸟,所以需要加强学习CSS.这个是我学习CSS权威指南的笔记,如有不对, ...
随机推荐
- 杂题 UVAoj 107 The Cat in the Hat
The Cat in the Hat Background (An homage to Theodore Seuss Geisel) The Cat in the Hat is a nasty c ...
- Android 子线程请求ASP.NET后台
首先定义布局文件,及点击事件 public class MainActivity extends Activity { private final int MSG_HELLO = 0; private ...
- Invert Binary Tree——LeetCode
Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 Trivia:This problem was ...
- 《ACM国际大学生程序设计竞赛题解I》——6.8
Poj1068: Description Let S = s1 s2...s2n be a well-formed string of parentheses. S can be encoded in ...
- Java调用R(一)_Rserve
最近做项目涉及到R总结一些Java本地调用R和Java web项目中调用R的基本步骤 1. R中安装Rserve包 2. 系统变量Path加上 C:\Program Files\R\R-3.0.1 ...
- jQuery常用事件详解
window.onload:在浏览器加载web页面时触发,可以写多次onload事件,但后者覆盖前者 ready:在浏览器加载web页面时触发,可以写多次ready事件,不会后者覆盖前者,依次从上向下 ...
- PhoneGap应用开发的那些坑爹事儿
子曾经曰过:如果你恨一个人,让他去开发PhoneGap应用:如果你爱一个人,让他去开发PhoneGap应用. 去年这个时候我很烦恼,因为我觉得我OUT了. 起因是我买了一台Android系统的手机.当 ...
- [Angular 2] Custom Validtors
Create a custom validtor which only accepts the string start with '123'; function skuValidator(contr ...
- TI C66x DSP 系统events及其应用 - 5.10(创建ISR的三种情况)
ISFP是服务中断的指令包,创建ISR的三种情况: 1.一个ISFP包的8条指令就能够满足ISR watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWl5ZW ...
- STL源码剖析—stl_config
操作系统:centos 6.4STL源码版本:3.3 前言: 要看一个项目的源码,首先要选中切入点. 那么在sgi stl 标准库中,其切入点是什么呢? 答案是:stl_config ...