JavaScript4
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JavaScript
JavaScript的数据类型的转换
Number不合适的地方:当一个字符串是var b = ”100px” ,会变成NaN 因此Number用的比较少,而使用parseInt(b),从左到右碰到 非数字后将前面的输出(会认识一些特殊符号,如+-空格),非 字符串会变成NaN,只会变成整数,小数点后部分舍去, parseInt(b,10)最好这样写,后面代表进制;而parseFloat与 上面的方法一样,但是会保留1个小数点后面的部分 Number()/parseInt()/parseFloat()显性类型转换(用转换方 法去转) 练习:做一个input输入框和一个input按钮,判断输入值是不 是数字(从HTML里拿到的内容都是字符串) 练习:用上面两个方法判断一下一个数字是否是整数
Null—object;object—function;
判断Array要使用Array.isArray(arr); 判断null请使用myVar === null;
JavaScript
JavaScript的数据类型的转换
判断某个全局变量是否存在用typeof window.myVar === 'undefined'; 函数内部判断某个变量是否存在用typeof myVar === 'undefined'。 null和undefined没有toString()方法!这两个特殊值要除外, 虽然null还伪装成了object类型。 number对象调用toString()报SyntaxError: 123.toString(); // SyntaxError 遇到这种情况,要特殊处理一下: 123..toString(); // '123', 注意是两个点! (123).toString(); // '123'
JavaScript
JavaScript的数据类型的转换
总结如下: 不要用new Number()/Boolean()/String()创建包装对象; 用parseInt()或parseFloat()来转换任意类型到number; 用String()转换任意类型到string,或调用某对象的toString() 方法;(数字+“” ) 不用把任意类型转换boolean再判断,因为可以写成if (myVar) {...}; typeof操作符可以判断出number、boolean、string、 function和undefined,object判断后是一个字符串;
length方法:输出它的长度,空格也算长度() 字符串字符长度 charAt()方法:输出()里下标处的字符
JavaScript
JavaScript的数据类型详解
布尔值:boolean ture/false
if(12>90){} ()的部分会变成布尔类型,如:12>90就是 false for(;i<3;) 中间的部分也会转换成布尔类型为真时才会继 续走循环
JavaScript
JavaScript的数据类型的转换
&&和||
a&&b逻辑“与”,遇到false就返回(后面不判断),如 都是ture返回最后一个(因此都为true时返回的是true) a||b逻辑“或”,遇到true就返回(后面不判断),如都 是false返回最后一个(因此都为false返回的是false) && 优先级高于 ||; 练习:思考一下以下逻辑返回的值: var a = ''|| null || 3 || 4; 3 var b = 4&&5&&null&&'0’; null var c = null && false || 4 && 5 ; 5
JavaScript
JavaScript的数据类型的转换
隐式类型转换(用非转换方法去转):
- * / %会让数字字符串和数字的运算结果转换成数字类型 ++ --可以让数字字符串转换成数字 而+会让任意字符串和数字的运算变成字符串类型 > <会让字符串和数字的比较正确显示,但是两个字符串 不行,如:'10'>9和'10'>'9',字符串的比较是一位一位 的比较,第一位如果比出来后面就不会再比较了 !取反,一个字符串或数字放在if判断里为真,所以取反会 变成false,最后结果一定是布尔值 ==如果两边相同(即使不同类型,如:'2'和2),就相等 ===会判断类型,如果类型不同即使相同则返回false >< ,==,===,得到波尔值(真假)
JavaScript
JavaScript
JavaScript的ECMAScript标准
js里的所有语言规范就是ECMAScript标准 例如function[]{}不能这么写,这是已经定义好的, 必须遵守的 数据类型:
HTML的标签类型:block、inline、inline-block 目的对他们能够做更准确的操作 typeof判断数据类型 如:var i = 100; alert(typeof (i));
JavaScript
JavaScript的数据类型的转换
无论是哪种转换方法,如果无法转换就会返回NaN NaN(not a number)是number类型,就是转换数字 类型转换失败的产物,但变成了number类型,因此一 旦出现代表你的代码进行了非法的操作 NaN转换布尔类型为false 诡异的NaN:与自己不相等(其他所有类型与自己都相 等) isNaN():is not a number(不是数字),判断某些值是 不是数字,如果是数字返回false,不是数字(内部会找 Number判断,如果转出的是NaN)则返回true
空字符串:false ,null:false,0和NAN是false其他数字都是true Indefined:false,存在的对象:true,不存在的:false
JavaScript
JavaScript的数据类型的转换
除了这些类型外,JavaScript还提供了包装对象,如: var n = new Number(123); // 123,生成了新的包装类型 var b = new Boolean(true); // true,生成了新的包装类型 var s = new String('str'); // 'str',生成了新的包装类型 虽然包装对象看上去和原来的值一模一样,显示出来也是一模 一样,但他们的类型已经变为object了!所以,包装对象和原 始值用===比较会返回false,如: typeof new Number(123); // 'object' new Number(123) === 123; // false 所以不要使用包装对象!尤其是针对string类型!
JavaScript
JavaScript的数据类型的转换
如同block、inline这种类型,当我们需要相应的类 型时进行转换 显性转换:使用一个方法转换 var a=“100”; alert(a+100) 输出结果100100,并 转化成了字符串 空数组取反结果相等 转化数字方法:Number(a);alert(Number(a )+100),尽可能的转换成数字,空和空格都会转 换成0,布尔值会变成1和0,null会变成0,函数、 json、未定义和对象会变成NaN(not a number ),特殊的数组如果为空或一个数据时会根据里面 的数据像字符串一样去转,多个数据时变成NaN
JavaScript
JavaScript的数据类型详解
对象类型:object var obj =document;
还可以obj.fn1 = function(){alert(1)};把一个函数起个名 并赋给了obj,通过obj.fn1()可以访问到它 数组也是obj,数组添加的方法(arr.push(x,y,z)),向arr 数组里添加x,y,z,因此也可以加自定义属性和函数 (不推 荐) var json = {num:1,name:'会长',age:28},如同 json.name类似自定义属性一样alert(“第 ”+json.num+”人”+json.name+”今年 ”+json.age+”啦”)
来自百度文库对象类型:object var obj =document;
//对象(object)是JavaScript的基本数据类型之一。对 象是一种复合值:它把多个值(原始值或者其他对象)聚 合在一起,可以通过名字访问这些值。对象也可看做是 属 性的无序集合,每个属性都是一个名/值对。属性名是字 符串,因此我们可以把对象 看成是从字符串到值的映射 object可以像我们页面元素一样添加自定义属性 obj.abc = 123;用obj.abc或者document.abc都可以访问到它 上面的也可以写成obj={“abc”:”123”}//属性名:值 之前学习的页面上获取元素通过点操作(obj .name )和 通过中括号操作(obj[“name”])同样适用于所有对象
空对象 null var n = null; //不存在的object
往往用来表示意料之中的空 空对象不能添加自定义属性等东西
未定义 undefined var n ; //就是一种状态
出乎意料的空,一般表示你写的程序有错误
JavaScript
JavaScript的数据类型详解
JavaScript
JavaScript的数据类型详解
基础类型:Number、String、Boolean、Null、 Undefined 变量和值存在同一地方 对象类型(指向性数据类型):object(包括Array 、Function、Date、Json等)变量和值存在不同地方 数字类型:number var i = 100;//不区分整数和 浮点 字符串类型:string var s =“nihao”//由零或多 个 16位 Unicode 字符组成的字符序列,即字符串