JavaScript学习笔记及知识点整理_2
1.一般而言,在Javascript中,this指向函数执行时的当前对象。举例如下:
var someone = {
name: "Bob",
showName: function(){
alert(this.name);
}
};
var other = {
name: "Tom",
showName: someone.showName
}
other.showName(); //Tom
this关键字虽然是在someone.showName中声明的,但运行的时候是other.showName,所以this指向other.showName函数的当前对象,即other,故最后alert出来的是other.name。
当没有明确的执行时的当前对象时,this指向全局对象window。
var name = "window";
var Bob = {
name: "Bob",
showName: function(){
alert(this.name);
}
};
var Tom = {
name: "Tom",
showName: function(){
var fun = Bob.showName;
fun();
}
};
Tom.showName(); //window
想要让它输出Tom,可以使用下面的代码:
var name = "Bob";
var nameObj ={
name : "Tom",
showName : function(){
alert(this.name);
},
waitShowName : function(){
var that = this;
setTimeout("that.showName();", 1000);
}
}; nameObj.waitShowName();
2.在if语句中,各个类型变量的判定如下:
String类型有内容判断true,无内容,判断为false,Number类型的变量,1判断为true,0判断为false.对于对象来说,为null为false,而不为null则为true
<head>
<meta charset="UTF-8">
<title>测试各个范围的变量在if</title>
</head>
<body> </body>
<script>
var a; //测试undefined
if(a) {
alert('a is true '+a);
}
else {
alert('a is false '+a);
}
/**
* 测试结果在a为undefined的时候,在if语句内判断为false
*/
var b=""; //b为没有内容的字符串
if(b) {
alert('b is true' +b);
}
else {
alert('b is false '+b);
}
/**
* 测试结果在b为空字符串 的时候,if语句判断为false
*/
var c="abc";
if(c) {
alert('c is true'+c);
}
else {
alert('c is false '+c);
}
/**
* c为有内容的字符串,if语句中判断为true
*/
var d=1;
if(d) {
alert('d is true'+d);
}
else {
alert('d is false'+d);
}
/**
* d为1,在if语句判断为true
*/
var e=0;
if(e) {
alert('e is true'+e);
}
else {
alert("e is false"+e);
}
/**
* e为0,在if语句中判断为false
*/
var f=new Array(4);
if(f) {
alert('f is true '+f);
}
else {
alert('f is false '+f);
}
/**
* 如果f为对象的话,就为true,当f为null的时候,为false
*/
3.HTMLDOM对象可以理解为和获取Java对象的属性一样,例如获取了一个div元素div,它有个style属性,style属性里可以设置display属性的值,因此就直接使用div.style.display=''inline";这里注意一点,这种方法只能获取属性.但是不代表嵌套的元素可以获取.例如如果bldy中只有一个子元素叫做div,那么是不存在body.div的.相关的HTMLDOM元素需要看文档才能弄清楚.
4.javascript中的document.write属性:它支持在文档中写内容.但是它会将文档中原有的内容全部覆盖!所以一般不用于去写内容.
5.javascript变量的重新声明:如果重新声明javascript变量,该变量的值不会丢失.例如:
var x=2;
var x; //x依然为2.
6.js对象的属性的寻址有两种方式:name=person.lastName,name=person["lastName"].
7.js对象的生命周期:js变量的生命从它们被声明开始,然后局部变量会在函数运行以后被删除,全局变量会在页面关闭后删除.
8.js中只有两种循环:for循环和while循环.
9.typeof和Instance of区别:typeof判断元素的数据类型,返回的是string,而instanceof则判断的是某个对象是否属于某个引用类型.返回的是boolean.需要注意的是,用var定义的变量如果是字符串数据类型也只是string.用instance of String依然返回false.
<script>
var a='abc';
var b=new String('abc');
alert("var--"+(a instanceof String));
alert("new--"+(b instanceof String));
</script>
10.js中的void运算符:
• void后面的任意结果都会被转移成undefined,因此采用void(0)来代替undefined更加安全可靠.
• void可以填充a的href确保点击之后不会发生跳转,这就是页面中经常看到的javascript:void(0)(javascript的内嵌引入,不执行任何操作)
11.js中的parseInt函数:
解析字符串,并将其转化为整数:与Java的parseInt不同的是,它会试图从字符串的第一个字符开始按照顺序解析,直到遇到非数字.如果字符串第一个字符就是非数字,则不会进行解析.例如parseInt(2.32)为2,parseInt(12a)为12
12.js的关系运算符:js的关系运算符和==运算符一样,会在比较的时候,试图进行类型转换.例如:11>"2"则返回为true
JavaScript学习笔记及知识点整理_2的更多相关文章
- JavaScript学习笔记及知识点整理_3
1.js的事件冒泡及阻止方法:事件冒泡的概念:在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事 ...
- JavaScript学习笔记及知识点整理_1
一.js的基础部分 1.==和===的区别:==在判断是否相等的时候会进行类型转换,有时会得到非常奇怪的结果,因此一般情况下都是用===判断是否相等2.strict模式:在js中,如果一个变量没有用v ...
- 大数据 -- kafka学习笔记:知识点整理(部分转载)
一 为什么需要消息系统 1.解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险.许多 ...
- kafka学习笔记:知识点整理
一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...
- [Big Data - Kafka] kafka学习笔记:知识点整理
一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...
- JavaScript学习笔记——对象知识点
javascript对象的遍历.内存分布和封装特性 一.javascript对象遍历 1.javascript属性访问 对象.属性 对象[属性] //字符串格式 //javascript属性的访问方法 ...
- 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要三
最近工作较忙,手上有几个项目等着我独立开发设计,所以平时工作日的时候没有太多时间,下班累了就不想动,也就周末有点时间,今天我花了一个下午的时间来继续总结与整理书中要点,在整理的过程中,发现了书中的一些 ...
- Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要系列文章索引
从发表第一篇文章到最后一篇文章,时间间隔有整整一个月,虽只有5篇文章,但每一篇文章都是我吸收<LEARNING HARD C#学习笔记>这本书的内容要点及网上各位大牛们的经验,没有半点废话 ...
随机推荐
- java IO 学习总结
推荐文章:java I/O学习 只要是处理纯文本数据,就要优先考虑使用字符流,除此之外都用字节流 字符流:FileReader和BufferedReader的使用 String path = &quo ...
- [daily][archlinux][fonts] 在linux下管理字体
序: linux是社区搞出来, 商业应用也都是服务器场景.社区里又都是技术人员.字体又是细节.而且会英文早成了标配.所以没有很多社区以外的人力来搞字体这个毫无回报的东西. 结果很自然的,装linux桌 ...
- 3D touch的 使用心得
一.设置图标touch 快捷进入 1.静态标签 静态标签是我们在项目的配置plist文件中配置的标签,在用户安装程序后就可以使用,并且排序会在动态标签的前面. 我们先来看静态标签的配置: 首先,在in ...
- php--数组函数array
1.array_combine array_combine是一种函数,通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值.如果其中一个数组为空,或者两个数组的元素个数不同,则 ...
- An AVPlayerItem cannot be associated with more than one instance of AVPlayer错误
An AVPlayerItem cannot be associated with more than one instance of AVPlayer An AVPlayerItem cannot ...
- 为什么微信android图片质量会比iphone的差?
为什么微信android图片质量会比iphone的差? 我们团队最初也纠结过这个问题,费了半天劲.绕了好大圈,直到最后才发现,原来这是谷歌犯得一个“小”错误,而且一直错到了今天. 谷歌的错就在于:li ...
- kibana使用操作部分
1.kibana的概念及特点. 概念:数据可视化平台工具 特点: - 灵活的分析和可视化平台 - 实时总结和流数据的图表 - 为不同的用户显示直观的界面 - 即时分享和嵌入的仪表板 2.kib ...
- ionic获取焦点
功能需求:点击按钮后获取input输入框的焦点 获取焦点用jq focus()不成功,因为angular也不推荐,所以网上找了一个在focus封装成指令的方法 指令写法: .directive('my ...
- 实现easyui datagrid在没有数据时显示相关提示内容
本示例实现easyui datagrid加载/查询数据时,如果没有相关记录,则在datagrid中显示没有相关记录的提示信息,效果如下图所示 本实例要实现如下图所示的效果: 本示例easyui版本为1 ...
- python学习之while语句
while循环 1.简单的while循环while True: ")#这是一个简单的while循环,当等于True时会一直打印1 2.while执行多少次后退出 coun=0while Tr ...