一、类型转换
1.1、显式类型转换
- 转换为字符串:toString() 或 String()
- 转换为数值:Number("100ab")、parseInt("121abc121")、parseFloat()
- 转换为布尔值:Boolean()
- 转换为对象:Object()
1.2、隐式类型转换
-
减号(-)、乘号(*)、除号(/)、取模(%)...
减号、乘号、除号、取模等操作符是比较单纯的操作符。 这些操作符会尝试将他们的操作数转换为数字(使用
Number()),如果操作数没法转换为数字的话,他们的结果就是NaN -
大于、小于、大于等于、小于等于
当两个操作数均是字符串的时候,它会执行大家熟悉的字符串比较,即从左到右依次比较每一个字符的ASCII码,若出现符合操作符的情况,则返回
true,否则返回false。 无法将操作数转换为数字的情况下总是返回false。 -
==、!=
这两个运算符在大部分上面都是与(一)相同的,不同的是:
- 字符串 op 字符串:不会进行类型转换,直接比较。
- 对象 op 对象:引用都指向同一个对象才为
true。
-
加号(+)
当没有特别指定的时候参考(一),比如对象+对象等,但有如下几种例外情况:
- 字符串 + 字符串:进行字符串拼接操作。
- 字符串 + 其他:将其他转换为字符串,并进行拼接操作。
二、this指向
2.1、函数类型
2.1.1、普通函数
function demo(){
}
2.1.2、匿名函数
let fn=function(){}
2.1.3、立即执行函数
(function(){
})()
2.1.4、回调函数
将函数作为参数传递给其他函数,在外部函数中调用它
function print(callback) {
callback();
}
2.1.5、创建回调函数
const message = function() {
console.log("This message is shown after 3 seconds");
}
setTimeout(message, 3000);
setInterval(message,1000)
2.1.6、箭头函数 ES6
箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this
var obj = { uname: "张三", age: 21 }
function fn() {
console.log(this,"外层函数")
return () => {
console.log(this,"箭头函数")
}
}
let result = fn.call(obj)
result()
判断this指向
var age=100;
var obj = {
age: 20,
say: () => {
alert(this.age)
}
}
obj.say()
this指向总结
(1) this总是指向函数的直接调用者(而非间接调用者)
(2) 如果有new关键字,this指向new出来的那个对象
(3) 在事件中,this指向目标元素,特殊的是IE的attachEvent中的this总是指向全局对象window。
| 函数类型 | this指向 |
| 普通函数 | 指向window |
| 匿名函数 | 指向window |
| 立即执行函数 | window |
| 回调函数 | window |
| 箭头函数 | 函数定义位置的上下文this |
| 对象下的函数 | 谁调用指向谁 |
| dom回调 | 绑定事件的对象 |
本文详细介绍了Java中的类型转换,包括显式转换如toString()、Number()、Boolean()等,以及隐式转换涉及的运算符。同时,深入探讨了this关键字在不同函数类型中的指向,包括普通函数、匿名函数、立即执行函数、回调函数和箭头函数,并总结了this的指向规则。
1717

被折叠的 条评论
为什么被折叠?



