JavaScript学习笔记(五)——类型、转换、相等、字符串
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript学习笔记(五)——类型、转换、相等、字符串,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6576字,纯文字阅读大概需要10分钟。
内容图文
![JavaScript学习笔记(五)——类型、转换、相等、字符串](/upload/InfoBanner/zyjiaocheng/1314/2a1009258f8b4d889a8f37177c756298.jpg)
第六章 类型 相等 转换等
一、类型
1 typeof();
typeof 是一个内置的JavaScript运算符,可用于探测其操作数的类型。
例:
1 <script language="JavaScript" type="text/JavaScript"> 2 3var test1="abcdef"; //string 4 5var test2=123; //number 6 7var test3=true; //boolean 8 9var test4={}; //object1011var test5=[]; //object1213var test6; //undefined1415var test7={"asdf":123}; //object1617var test8=["asdf",123]; //object1819function test9(){return "asdfg"}; //function20212223 console.log(typeof test1);//string2425 console.log(typeof test2);//number2627 console.log(typeof test3);//boolean2829 console.log(typeof test4);//object3031 console.log(typeof test5);//object3233 console.log(typeof test6);//undefined3435 console.log(typeof test7);//object3637 console.log(typeof test8);//object3839 console.log(typeof test9);//function4041 </script>
2 undefined
说明:对于任何还没有值(即未初始化)的东西,都会将undefined赋给它;undefined的类型是undefined
【未初始化的变量、访问不存在或已删除的属性、使用不存在的数组元素】
优点:undefined让你能够判断是否给变量(属性、数组元素)赋值了
应用:
1 // 变量 2 3 var x; 4 5 if(x==undefined) 6 7{ 8 9处理程序; 1011} 1213//对象的属性1415var customer={ 1617 name:"Jenny" 1819}; 2021if(customer.phonenumber==nudefined) 2223{ 2425处理程序 2627 }
3 null
说明:表示没有对象可以赋给变量;
与undefined对比:undefined:在变量未初始化、对象没有指定属性、数组没有指定元素;
null :在应该提供一个对象,但无法创建或找到时;
再次说明:返回null未必意味着出现了问题,这可能只是意味着有什么东西不存在,需要创建它或可以忽略它。
例:
1 var weather=document.getElementById("weatherDiv"); 23if(weather!=null) 45{ 67//为div元素weather创建内容89 }
4 NaN
说明:不是数字的数字【它的类型为number】,表示 0/0 等不可以被表示的数字,
* 是一个数字,只是无法表示;
* NaN !=NaN 【sqrt(-1)与sqrt(-2)】;
* 判断函数是isNaN();返回值为布尔类型;
* 向isNaN()传递一个不能转换为数字的字符串时返回true;
* typeof null 返回值为object【与说明相对应】
*NaN 与Infinity区别:Infinity是指任何超过浮点数上限1.7976931348623157E+1.038的值,
(-Infinity是小-1.7976931348623157E+1.038)
二、 相等
1 理解相等
如果两个值类型相同,就直接进行比较;
如果两个值类型不同,就尝试将他们转换为相同的类型再进行比较;
返回值:相等true不等 false
2 相等运算符转换操作数:
* 比较数字和字符串,将字符串转换为数字, ( 如将“ 99 ”转换为 99 ) ;如果不能转换为数字则转换为NaN
* 比较布尔类型和其他类型,将布尔中true=1,false=0;
*undefined==null ;
*"" 空字符串转换为数字0;
拓:严格相等:===【类型和值都相等】
没有 <== 和 >== 但是有 !===
应用: "true"==true;// 返回false因为签前面为字符串后边布尔转换为数字
"banana"<"melon";// 返回true,因为按照字母排列顺序Unicode排序,开头b<m,拓M<m
三、类型转换
1 涉及转换的运算符
· + 数字遇到字符串,将数字转换为字符串;如 1+2+"pizzas"="3 pizzas";1+(2+"pizzas")="12 pizzas"; true 转换为字符串
· * 数字遇到字符串,将字符串转换为数字
· / 数字遇到字符串,将字符串转换为数字
· - 数字遇到字符串,将字符串转换为数字
四、 判断两个对象是否相等
· 运算符:==和===等价
· 意义:检查两个对象变量是否相等时,比较的是指向对象的引用,仅当两个引用指向的是同一个对象时,他们才相等;
· 例:
1 <!doctype html> 2 3 <html lang="en"> 4 5 <head> 6 7 <title>look for car</title> 8 9 <meta charset="utf-8"> 10 11 <style type="text/css"> 12 13 14 15 </style> 16 17 <script language="JavaScript" type="text/JavaScript"> 18 19function findCarInLot(car) 20 21{ 22 23for(var i=0;i<lot.length;i++) 24 25{ 26 27if(car===lot[i])//== 一样 28 29return i+1; 30 31} 32 33return -1; 34 35} 36 37var chevy={ 38 39 make:"Chevy", 40 41 model:"Bel Air" 42 43}; 44 45var taxi={ 46 47 make:"Webville Motors", 48 49 model:"Taxi" 50 51}; 52 53var fiat1={ 54 55 make:"Fiat", 56 57 model:"500" 58 59}; 60 61var fiat2={ 62 63 make:"Fiat", 64 65 model:"500" 66 67}; 68 69 70 71var lot=[chevy,taxi,fiat1,fiat2]; 72 73var loc1=findCarInLot(taxi); //2 74 75var loc2=findCarInLot(fiat1);//3 76 77var loc3=findCarInLot(chevy);//1 78 79var loc4=findCarInLot(fiat2);//4 80 81 82 83 console.log(loc1);//2 84 85 console.log(loc2);//3 86 87 console.log(loc3);//1 88 89 console.log(loc4);//4 90 91 </script> 92 93 </head> 94 95 <body> 96 97 <h1>Look for cars in the parking lot</h1> 98 99 </body> 100101 </html>
五 、真值和假值
· 说明:在JavaScript中有些值并非true和false但是用于条件表达式中时被视为true和false。
· 记住五个假值,其余就是真值:undefined null 0 空字符串 NaN
例如:if([]){//代码;}中[] 表示数组为真值
六 、字符串
· 前奏:每种类型都归属两个阵营之一,基本类型和对象;
· 字符串 / 数字 / 布尔也可以是既有基本类型又是对象,但是后两者的属性和方法较前一者少很多;
· string 属性和方法介绍:
· 属性str.length:返回字符串的长度即字符个数;
· 方法str.charAt():参数范围是0-长度-1 的整数,返回为该索引的字符;
· 方法str.indexOf("cat");返回第一个cat中c的索引;
str.indexOf("the",5); 从索引为5开始搜索,返回the中t的索引;
如果没有找到返回 -1 ;
· 方法str.substring(5,10);返回索引5(包括)到10(不包括)之间的字符串;
substring(5); 返回从索引5到字符串结尾的字符串;
· 方法str.slice(5,7);删除字符串的一部分并返回结果;和substring返回结果相同
· 方法str.split("|");返回以|为界分隔的字符串数组;
· 方法str.toLowerCase();返回将字符串的所有大写转换成小写;
· 方法str. toUpperCase(); 返回将字符串中的所有小写转换成大写;
· 方法 str.concat(str2); 返回将str2拼接在str后的字符串;参数可以是多个即继续向后拼接;
· 方法 str.replace("fgh","12"); 查找子串fgh并替换成另外一个字符串12;
· 方法 str. lastIndexOf(); 与indexOf类似但是查找最后一个子串;
str="asd,fgh,jkfg ";str3=str.lastIndexOf("fg",4);// 返回 4
str="asd,fgh,jkfg ";str3=str.lastIndexOf("fg");// 返回 10
· 方法match:在字符串中查找与正则表达式匹配的子串
1 <script type="text/javascript"> 2 3 4 5var str="Hello world!" 6 document.write(str.match("world") + "<br />") 7 document.write(str.match("World") + "<br />") 8 document.write(str.match("worlld") + "<br />") 9 document.write(str.match("world!")) 1011 </script>
输出:
world
null
null
world!
· 方法str.trim():删除字符串开头和末尾的空白字符;
七、举个栗子:
1 <!doctype html> 2 3 <html lang="en"> 4 5 <head> 6 7 <title>Check phone number</title> 8 9 <meta charset="utf-8"> 10 11 <style type="text/css"> 12 13 14 15 </style> 16 17 <script language="JavaScript" type="text/JavaScript"> 18 19//要求检验7位数字的电话号,中间第四位-可有可无 20 21//方法一: 22 23function validate1(phonenumber) 24 25{ 26 27if(phonenumber.length>8||phonenumber.length<7) 28 29returnfalse; 30 31for(var i=0;i<phonenumber.length;i++) 32 33{ 34 35if(i==3) 36 37{ 38 39if(phonenumber.length===8&&phonenumber.charAt(i)!==‘-‘) 40 41returnfalse; 42 43elseif(phonenumber.length==7&&isNaN(phonenumber.charAt(i))) 44 45returnfalse; 46 47} 48 49elseif(isNaN(phonenumber.charAt(i))) 50 51returnfalse; 52 53} 54 55returntrue; 56 57} 58 59//方法二:还有bug吗? 60 61function validate2(phonenumber) 62 63{ 64 65if(phonenumber.length>8||phonenumber.length<7) 66 67returnfalse; 68 69var first=phonenumber.substring(0,3); 70 71var second=phonenumber.substring(phonenumber.length-4); 72 73if(isNaN(first)||isNaN(second)) 74 75returnfalse; 76 77if(phonenumber.length===8) 78 79return (phonenumber.charAt(3)==‘-‘); 80 81returntrue; 82 83} 84 85//方法三:正则表达式 86 87function validate3(phonenumber) 88 89{ 90 91return phonenumber.match(/^\d{3}-?\d{4}$/); 92 93} 94 95 96 97var str1="6724025"; 98 99var str2="672-4254"; 100101var str3="72554896" 102103console.log(validate1(str1)); 104105console.log(validate2(str2)); 106107console.log(validate3(str3)); 108109 </script> 110111 </head> 112113 <body> 114115 <h1>Verify that the phone number is correct</h1> 116117 </body> 118119 </html>
原文:https://www.cnblogs.com/weimingai/p/10350312.html
内容总结
以上是互联网集市为您收集整理的JavaScript学习笔记(五)——类型、转换、相等、字符串全部内容,希望文章能够帮你解决JavaScript学习笔记(五)——类型、转换、相等、字符串所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。