前端javascript高级程序设计(第四版)第三章节语言基础 第(32下页-43下页)页 2022/10/5

3.4.3 Null 类型
null的类型只有一个值,null表示一个空对象指针,用typeof检测null就相当于检测一个指针,,所以返回object。
3.4.4 Boolean 类型
布尔有两个字面值true和false,其它的数据类型都有相应的布尔值的等价形式(我觉得应该叫转换形式),使用Boolean()可以转换其它数据类型到布尔类型,在if控制语句中if可以自动转换,需要注意的是如果错误的将对象放置到if内,而不是布尔值,会改变程序的执行。
3.4.5 Number 类型
各进制如果超出范围,例如079超出了,会当成10进制。
8进制在严格模式会报错
浮点:0.1,整数的小数如1.0这样的浮点会被ECMAScript设法变成1,因为浮点占据的内存空间是整数的两倍
非常大的数值使用科学计数法65e6,就是65000000,特别小的数字0.0000001可以写成1e-7
浮点最高可达17位小数
值的范围:想要知道某个数值在不在最小最大之间可以使用isFinite(变量)
NaN:0除别的数值会得到NaN,任意数字除0得到正或者负的infinity,和NaN发生的运算都会得到NaN,NaN不等于NaN自己以及其它任何值。isNaN(参数),这个函数会把参数尝试装换成数字,哪怕是字符形式的数字。
数值转换方法:Number(),parseInt(),parseFloat(),Number()可用于任何数据类型,后两个用于将字符串转为数值。使用Number()转换对象时,需要注意,它会使用valueof()方法,如果转换结果是NaN,就会使用toString()方法,再按照字符串的规则转换.
parseInt():用来应用字符形式的数值,规律是遇到非数值的将会停止转换,对非空格字符的转换是NaN。并且在非严格模式可以识别0开头的八进制,以及0x开头的16进制,它可以放置第二个参数,来确定几进制,最终会转变为10进制。错误的填入进制到第二个参数,会导致NaN
parseFloat():和parseInt类似,但是它只解析10进制的值,所以无法指定底数(几进制),比如16进制的值只能识别0,
3.4.6 String使用双引号,反引号,单引号包裹16位字符,都是合法的字符串,开头和结尾的符号需要一致。
1.字符字面量:使用转义序列只代表一个字符,因为使用转移序列希望得到的是Unicode的字符,所以算一个字符,使用text.length可以得出字符的真实个数。第五章会讲解双字符的问题。使用length判断长度不是太准确,后面会讲解双字节字符的准确方法,比如hello world中间的空格如何去除得到准确的字符长度。中文的会占用两个字节,英文的一个字母会占用一个字节.
2.字符的特点:字符被创建后再次修改,所有处理都是在后台操作,按照先销毁,分配10个字符的空间,然后进行拼接完成存入变量
3.转换为字符串:几乎所有值都可以使用toString()方法转换成字符形态的等价物。null和undefined没有toString()方法,多数情况toString()不需要写参数,但是如果需要将10进制的值转换成需要的进制,就可以使用toString(进制数),这样就可以得到需要的进制数

let num=10 
console.log(num.toString(8))//得到12的的八进制,前面没有0需要自己添加

如果你不确定或者你在某个条件中需要某个变量的值是null或者undefined,你可以使用String(变量),这样不会报错,而是得到两个值的字面量的文本

let value=null
if(String(value)==="null"){
		console.log("案例测试成功")
}
	或者使用这种方式
   let value = "" + null  //这样也可以
   if(value==="null"){
		console.log("案例测试成功")
}

4模板字面量:反引号`` ,特点可以保留换行符,

 let myMutiLineString = 'firat line\nsecond line' //只支持贴近打可以识别到\n换行
 console.log(myMutiLineString); //打出来两行

let myMutiLineTemplateLiteral = `firat line
         second line`//直接回车,可以自动填补换行
console.log(myMutiLineTemplateLiteral); //打出来两行

以上两种变量是完全相等的
主要用于HTML模板,避免一行写太多HTML代码,用反引号可以进行换行而不会报警,注意不要敲多余的空格,会导致缩进不当。并且多个空格会被算进总长度。\n算一个字符长度
5字符串插值:模板字面量支持字符串插值,模板字面量可以将变量的值直接求值再转换成字符串实例使用${变量名},所有插入的值都会使用toString()强制转换成字符串,不需要人为转义。

  let foo = { toString: () => `world` }
  console.log(`hello,${foo}`) //打印结果hellow world

模板内调用函数

 function capitalize(word) {
      return `${word[0].toUpperCase()}${word.slice(1)}`
 }
 console.log(`${capitalize('hellow')},${capitalize('word')}`);

模板内保存之前的值,并且累计起来保存到外部

let value=""
function append(){
	value=`${value}abc`
	consloe.log(value)
}

6模板字面量标签函数:感觉用不到的东西,第一次打印出来的是一个数组,是将插值左右两边的字符存进字符内,从插值的左至右存入,完全忽略插值,第二个参数才是将第一个插值传输进入,后续按照顺序传入函数参数的后续位置。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值