javascript深入浅出——学习笔记(六种数据类型和…
2018-06-24 00:26:03来源:未知 阅读 ()
在慕课之前学过JS深入浅出,最近发现很多东西都记不太清楚了,再复习一遍好了,感觉这个课程真的超级棒的,做做笔记,再添加一些学习内容??随时补充
课程大纲
1.数据类型
2.表达式和运算符
3.语句
4.对象
5.数组
6.函数
7.this
8.闭包和作用域
9.OOP
10.正则表达式
学习资料:
JacaScript权威指南
MDN https://developer.mozilla.org/zh-CN/docs/learn/JavaScript 火狐的MBN
多动手实践+参与讨论
第一章数据类型:
1.六种数据类型
弱类型特性
var num=32;
num="this is string";
32+32 //64
"32"+32 //"3232"
"32"-32 //0
数据类型:原始类型【number,string,bollean,null,undefined】 object对象类型【Function Array Date …】
2.隐式转换
+ -
var x='The answer is '+42; 字符串拼接
var y=42+'is the answerr'; 字符串拼接
"37"-7 //30
"37"+7 //377
巧用+/-规则转换类型
num-0 //转数字
num+'' //转字符串 加上空字符串
a==b判断
"1.23"==1.23 //true 先将字符串转为数字,再进行比较
0==false //true
null==undefined //true
nwe Object()==new Object() //false 比较地址 地址不同
[1,2]==[1,2] //false 比较地址 地址不同
严格等于===
a===b
先判断两边的类型,若类型不同则返回false
类型相同:null===null
undefined===undefined
注NaN和任何值比较都不相等,包括和自己比较 NaN≠NaN
a==b
类型相同,同===
类型不同,尝试类型转换和比较:
null==undefined相等
number==string转number 1=="1.0"//true
boolean==? 先将Boolean转为number(true--1,false--0)再比较
object==number|string 尝试对象转为基本类型 new String('hi')=='hi'//true 其他:false
补充:
JS类型转换的坑 http://www.cnblogs.com/diligenceday/p/4393210.html
null,undefined,"",0,-0,NaN 转换成布尔值是false,剩下的(" ","0")全转化为==》true;
null,"",false," ",[] 转换成数字是==》0;
undefined,"One",一个非数字值的数组:["a"],function(){}转化成数字是==》NaN;
true,一个值为数字的数组:[1],是数字的字符串:"1",转换为数字是==》1
isFinite()函数用于检查其参数是否是无穷大。若不是无穷,则返回true,若为无穷则返回false
其中null和undefined没有构造函数,他们两个转化为对象的时候会报类型错误。
JS把对象转化成原始值
JS如果把对象转化成字符串,会调用对象的toString()方法,如果toString()方法返回的值是一个对象,那么会调用对象的valueOf()方法,把valueOf()的返回值转化成字符串,如果该值还不是原始值就会报错;
对象转化数字的时候会调用valueOf()方法,如果该方法返回值非原始值,那么会调用该对象的toString(),把toString的返回值转化成数字,如果toString()返回值还是非原始值,那么就会报错;
如果是对象类型转换成原始类型,只要把需要转化的对象放到原始类型的构造函数中进行解包,比如:
Number({valueOf:function(){return 1111}}) //===>1111
String({toString:function(){return 1111}}) //===>"1111"
Boolean({}) //===>true
如果你觉得麻烦的话可以通过算术运算符进行快速转换:
var obj={toString:function(){returnn 1111}};
obj+""==>>"1111";
var obj={valueOf:function(){return 1111}};
+obj==>>1111;
JS把原始值转化成对象
要让原始类型转化成对象类型要将原始类型放到对象类型的构造函数中,需要让构造函数包装;
console.log(typeof ture); //==>>boolean
console.log(typeof new Boolean(true)) //==》object
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- javascript面向对象入门基础详细介绍 2020-03-29
- JavaScript函数表达式详解及实例 2020-03-25
- 如何用javascript连接access数据库 2020-03-20
- js中去掉字串左右空格 2020-03-20
- Javascript中的经典技巧 2020-03-20
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash