《高级程序设计》整理

《高级程序设计》整理


在喜马拉雅上听了沙翼的《高级程序设计》的音频课程,记录了一些题目当做整理复习用
q1

js区分大小写,html和css不区分大小写。那么请问,js在html中是否区分?
a:

onClick不区分,triggerClick区分

q2
汉字是否可以作为变量名 可以,但不推荐

q3
分号是否为必写的?
不是。js在执行时若没有分号,会给两行合并执行,可能会有错误难定位,所以不推荐使用。例如第二行如果是小括号会认为是执行函数。
这也是为啥有些代码里会在开头加分号。

当涉及到return break continue不会和下一行合并,所以return后面有内容的时候不要换行。

q4
var a=‘asd’;a.length=4; 输出a.length为undefined,为什么?
基本类型没有属性,当给赋值时会自动生成一个对象,之后就会销毁掉。
a.toUpperCase() a不变同理;

q4
0.1+0.2 不等于 0.3 为啥?
因为你用的十进制,而计算机是二进制,计算机只能将最接近的数返回给你。
可以 (0.1*1000 + 0.2*1000)/1000

Math.abs(0.1+0.2-0.3) < =Number.EPSILON

q5
对象属性的查询可以用.和[],具体是怎么实现的?
1.js遇到.或者[]会先判断变量是否为null或者undefined,是的话直接报错。
2.变量是不是对象,不是的话转成对象。
3. .后面的会直接转成字符串,而[]会先进行计算,而后转为字符串,这也就是为什么a[‘1’] a[1]效果相同
4. 属性本身不存在,返回undefined。

q6
一元加减是如何实现的?
会把表达式转成数字,如果是减加负号。

q7
a=1; b=a+++a; a b 各多少?
1.优先级 属性访问的优先级最高,第二是一元运算符;
例如a=3;++a==3;false 因为先一元运算后==
2.结合性
js中所有的一元运算,三元,赋值都是从右向左;其他都是从左向右;
a=b= c=d 先d赋值c,c赋值给b,b给a,因为赋值是从右向左。

q8
a&&b||c 和 a?b:c
以上两个是一样的,通常ifelse会用第一种,赋值用第二种
q9
7>6>5 false 从左向右计算

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值