首页 > 其他分享 >js易错问题总结系列

js易错问题总结系列

时间:2023-02-28 21:04:11浏览次数:42  
标签:总结 逗号 易错 js 运算符 字符串 var null 表达式


整理遇到的掌握的不是特别好的问题,方便以后重点学习

一、JavaScript的三种消息框alert,confirm,prompt

1. alert是弹出警告框,在文本里面加入\n就可以换行。

2. confirm弹出确认框,会返回布尔值,通过这个值可以判断点击时确认还是取消。true表示点击了确认,false表示点击了取消。

3. prompt弹出输入框,点击确认返回输入框中的值,点击取消返回null。

二、null和''有什么区别

null是对象类型,表示空对象,alert(typeof(null)); 会输出object
" "是一个空格的字符串,alert(typeof(" "));会输出string。

var str1 = null; str引用为空
var str2 = ""; str引用一个空串
也就是null没有分配空间,""分配了空间,因此str1还不是一个实例化的对象,而str2已经实例化。

三、“+”运算符的功能

1、加法运算(左右两侧都为数字)

2、字符串拼接(左右两侧只要有一侧是字符串,那么就是字符串拼接)

3、正号

字符串转布尔值,非空字符串全部转为true

四、

四、逗号运算符

 

一、逗号运算符的特性及作用 
逗号运算符的作用是将若干表达式连接起来。它的优先级别在所有运算符中是最低的,结合方向是"自左至右"的。 (即:逗号运算符:是按顺序执行表达式,并且获得右边表达式的值。)

逗号表达式的一般形式是:表达式1,表达式2,表达式3……表达式n 
逗号表达式的求解过程是:先计算表达式1的值,再计算表达式2的值,……一直计算到表达式n的值。最后整个逗号表达式的值是表达式n的值。 

看下面的两个例子:

var i=0,j=0;
for(;i<10,j<6;i++,j++){//判断条件为:i<10,j<6
k = i+ j;

}
console.log(k)//10


var i=0,j=0;
for(;i<6,j<10;i++,j++){//判断条件为:i<6,j<10
k = i+ j;

}
console.log(k)//18

仔细对比就能够发现只是判断条件的时候改变了两个条件的先后位置,结果就不相同了,就是因为逗号运算符,是按顺序执行表达式,并且获得右边表达式的值。所以第一个是满足j<6的时候才可以进入for循环里面,第二个小例子是满足j<10的时候,可以进入for循环里面,所以两个k值是不一样的。

预解析小例题:

var a = 1
fn1()
var fn1 = function(){
console.log(a)
}// Uncaught TypeError: fn1 is not a function

fn2()
function fn2(){
console.log(a)
}//1

第二个可以正常运行,是在我们的预料之内的,那第一个报错是为什么呢?这就涉及到了我们的变量预解析的问题,在第一个小例子中,fn1()执行之前,其实会有一个预解析的过程,var fn1会先被预解析,然后给其赋值为undefined,那undefined后面加括号,肯定会报错呀

标签:总结,逗号,易错,js,运算符,字符串,var,null,表达式
From: https://blog.51cto.com/u_15983333/6091804

相关文章

  • vue实现个人博客项目【问题总结】
    推荐原因:讲的好是肯定的,主要的原因是因为我学习前端很久,(还在学习阶段)一直苦于没有后端数据库支持,想了很多办法,嗯,这个视频可以很好的解决哦ok,步入正题总结1:处理从后端获取的......
  • 项目中遇到的问题总结
    功能描述:1、单击输入框,弹出弹层,再点击弹层隐藏2、单击空白区,弹层隐藏3、单击弹层中的地区,把对应值填入到输入框中,弹层隐藏功能实现:我设置了开关,单击输入框的时候,开关取反,单......
  • js随机产生不同颜色
    方法一(随机RGB颜色值)#####//颜色对象functiongetRandomColor(){this.r=Math.floor(Math.random()*255);this.g=Math.floor(Math.random()*255);this.......
  • 原生js实现3D照片墙
    聊一下心得:CSS写得好,真的可以省很多js代码哈,写起来也简单很多,所以要好好掌握js哈,所以这里也提供了css代码,如果您觉得您的css写得不错,可以直接看js代码哦效果:1、点击StartVi......
  • 兼容性问题系列总结(一)
    之前有写过css知识点系列总结,觉得效果还不错,所以打算把遇到的兼容性问题也汇总到一起,就当记笔记喽(也是会持续更新滴)2018/6/20--js兼容性问题--1.JSON解析问题:  ecmascr......
  • npm 常用安装包命令总结
    直接安装使用npm直接安装模块,默认是生产环境,包名会注册到package.json里的dependencies中,且会把包安装到项目node_modules文件夹里面:npminstallmodule_name......
  • js中阻止事件冒泡与阻止事件默认行为
    一、冒泡事件我们都知道冒泡就像水底气泡浮到水面这一过程。冒泡事件即是事件从最底层逐个经过上面一级级事件的过程,就是冒泡事件。那么如何有效的阻止冒泡事件的发生?其实在......
  • 2.28每日总结
    今天学习了androidstudio中新建空白项目生成项目的各个部分的作用,以及makeproje后build中的一些文件的作用,然后简单跟着教学进行了一些编程,例如运行出第一个helloword......
  • JS内存爆破问题
    原理检测到调试,格式化等,疯狂的在js文件,或者html中进行读写,cookie重写追加,字节追加,导致内存不足够,卡死内存爆破,指js通过死循环/频繁操作数据库(包括cookie)/频繁调取histo......
  • 程序设计竞赛算法与实现考点总结(模板)
    一,转换(星期计算)栗:给定一个日期,问这个日期是星期几?Mothod1---根据这个日期与今天的距离X,假设今天是星期Y,给定日期是今天星期之前:((Y-X)%7+7)%7+1;......