分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

JS练习题

发布时间:2023-09-06 01:31责任编辑:苏小强关键词:暂无标签

1.注意:只要+【加号】两边没有字符串,我们就按正常的数字相加就OK了

1 <body>2 ????<script type="text/javascript">3 ????????var str = false +1;4 ????????document.write(str);5 ????</script>6 </body>
View Code

上面这道题实际上带有隐世类型转换,false转换为0,然后和1相加,所以结果为1;

2.注意:运算符之间的优先级

1 <body>2 ????<script type="text/javascript">3 ????????var demo = false ==1;4 ????????document.write(demo);5 ????</script>6 </body>
View Code

上面这道题显然==判断是否相等的优先级要高于=赋值运算符,所以先看false是否等于1【false转换成数字为0,显然不等于1,返回false】,然后将比较的结果赋值给变量demo,所以demo的值为false;

3.注意:只有一种情况我们在不定义变量的情况下,使用变量是不报错的,就是使用typeof(a)这种情况,而且返回值为字符串类型的undefined;

注意:虽然null是一个原始类型,但是当null交给typeof的时候,typeof总是认为null是给Object占位使用的,所以我们使用typeof(null)的时候,返回值是Object;

注意:true转换为数字是1,false转换成数字是0,那么-true【负true就是-1】,一般情况下前面加+号或者-号的都是将其转换为数字【隐式转换】,所以+undefined是想将undefined转换为数字【Number】,当然undefined是转换不成Number数字的,所以返回值是NaN【not a number】,而-1+NaN=NaN,NaN+""【空串】得到的结果就是"NaN"的字符串!所以如下代码:

1 <body>2 ????<script type="text/javascript">3 ????????if(typeof(a)&&-true + (+undefined) +""){4 ????????????document.write("基礎扎實");5 ????????}6 ????</script>7 </body>
View Code

所以if条件中的语句就成了"undefined"字符串 和 “NaN”字符串做与操作,由于是两个字符串做与操作,所以if条件得到的返回值是true,那么就可以执行if语句体,从而可以输出:基础扎实!

1 <body>2 ????<script type="text/javascript">3 ????????if(11 + "11"*2 == 33){4 ????????????document.write(‘基础扎实‘);5 ????????}6 ????</script>7 </body>
View Code

注意:凡是用到*【乘号】的,我们一般都是将*【乘号】两边的东西转换为数字,所以这里的字符串"11"会被隐式转换为数字11,然后乘以2,得到22,然后和前面的11相加,得到33再和33比较是否相等,显然是相等的,所以会执行if语句内部的输出,最终会输出:基础扎实!

隐式转换:除了+号之外的运算符,如-,*,/,%,等运算符两边的东西都是要先隐式转换为数字,然后再进行计算的!如下所示:

"11"-"2":实际上是将字符串11和字符串2转换为数字11和数字2,然后再进行相减!

4.注意:""【空串】和"   "【空格字符串不是一回事】,空串转换为布尔值是false,而空格字符串转换为布尔值

 是true;所以!""是true,而 !"  "是false,而 !!""则是false,!!"  "则是true,所以如下代码:

1 <body>2 ????<script type="text/javascript">3 ????????!!" " + !!"" - !!false || document.write(‘你觉得能打印,你就是猪‘);4 ????</script>5 </body>
View Code

||前面的是:true + false -false其实就是转换为数字再计算,得到1,||【或】好前面是1,相当于true,所以就不会执行||【或】后面的代码,所以不会输出后面的内容!

5.CSS的属性值有几个?分别是啥?代表啥含义:

  ①.inline【行内元素】

  ②.inline-block【行内块元素】

  ③.block【块元素】

  ④.none【样式消失,且不占用空间】

  6.

JS练习题

原文地址:http://www.cnblogs.com/python-machine/p/8082922.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved