编写代码中常见问题汇总(JavaScript)

简介: 编写代码中常见问题汇总(JavaScript)

1. 控制台出现"undefined"报错

"undefined"是一个Javascript的错误报错,表示变量或属性未定义或未赋值。

这个报错通常出现在以下情况下

  1. 尝试访问未声明的变量或函数。
  2. 尝试访问未定义的对象属性。
  3. 尝试调用未定义的函数。
  4. 变量或属性被声明但没有赋值。

出现这个报错的原因可能是:

  1. 代码中存在拼写错误,导致变量或函数无法被正确识别。
  2. 变量或属性在代码执行之前没有被声明或赋值。
  3. 在异步操作中,代码尝试访问尚未完成的异步操作的结果。

为了解决这个问题,可以检查以下几点:

  1. 确保变量或函数的拼写正确,并且已经正确声明。
  2. 确保变量或属性在使用前已经赋值。
  3. 对于异步操作,可以使用回调函数、Promise或Async/Await来处理异步结果。
  1. 尽量使用严格模式,避免隐式的全局变量。

2. 匿名函数分为两种,一种是函数表达式,一种是自执行函数

需要注意:函数表达式只能在后面进行调用,可以多次调用,但自执行函数只能调用一次

3. 注意以下自执行函数的理解

 var c= (function () {
            var x = 10;
            var y = 5;
            return function(){
                return x+y;
            }
        })()();
        console.log(c);

第一个return返回的结果是一个函数,此时用变量直接接的话接到的是一个函数,因此在结尾处再加一个括号,进行二次调用,得到的结果才是x+y的运算数值,然后我们用变量c将函数的返回值给接回来,再输出C就能得到预期结果。

 function(){   
 
                            return x+y;                   
 
}

4. 把伪数组转换为真数组的方法总结

    <script>
        function fn() {
 
            // 把伪数组转换为真数组
 
            // 方法一:遍历
            var arr = [];
            for (var i = 0; i < arguments.length; i++) {
                arr[arr.length] = arguments[i];
            }
            console.log(arr);
 
            // 方法二
            var arr1 = [...arguments]
            console.log(arr1);
 
            // 方法三
            var arr2=Array.from(arguments);
            console.log(arr2);
            // 方法四:
            var arr3=Array.prototype.slice.call(arguments);
            console.log(arr3);
 
        }
        fn(1, 23, 45, 76, 2)
    </script>

5. 以下表达式的运行结果是:1+-1++-+1什么?

会报错,因为只有变量才可以自增和自减。

  console.log(1+-1++-+1);
        //   Uncaught SyntaxError: Invalid left-hand side expression in postfix operation

6. 给单选按钮、复选框和下拉列表框添加点击事件时尽量不要用.onclick事件,推荐使用.onchange (当发生改变时)事件

7. 首页文件不要放在所有页面的文件夹下面,而且首页文件不要乱起名字 ,静态资源下的首页文件只有四个名字  index.html  index.htm default.html default.htm。

8. console.dir()可以在控制台输出所属对象的所有属性和方法,包括其原型链上的属性和方法。

相关文章
|
29天前
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
53 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
1月前
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
123 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
1月前
|
人工智能 JavaScript 前端开发
一段 JavaScript 代码,集成网站AI语音助手
根据本教程,只需通过白屏化的界面操作,即可快速构建一个专属的AI智能体。
|
2月前
|
JavaScript 前端开发 测试技术
在 golang 中执行 javascript 代码的方案详解
本文介绍了在 Golang 中执行 JavaScript 代码的四种方法:使用 `otto` 和 `goja` 嵌入式 JavaScript 引擎、通过 `os/exec` 调用 Node.js 外部进程以及使用 WebView 嵌入浏览器。每种方法都有其适用场景,如嵌入简单脚本、运行复杂 Node.js 脚本或在桌面应用中显示 Web 内容。
147 15
在 golang 中执行 javascript 代码的方案详解
|
3月前
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
3月前
|
JavaScript
原生js炫酷随机抽奖中奖效果代码
原生js随机抽奖是一个炫酷的根据数据随机抽奖的代码,该网页可进行随机抽取一个数据,页面动画高科技、炫酷感觉的随机抽奖效果,简单好用,欢迎下载!
83 3
|
3月前
|
JavaScript 前端开发 开发者
如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码
随着前端开发技术的快速发展,代码规范和格式化工具变得尤为重要。本文介绍如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码。通过安装和配置这些工具,可以确保代码风格一致,提高代码质量和可读性。
416 1
|
3月前
|
JavaScript 前端开发 开发者
如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤
随着前端开发技术的快速发展,代码规范和格式化工具变得尤为重要。本文介绍了如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤。通过这些工具,可以显著提升编码效率和代码质量。
784 4
|
3月前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
180 6

热门文章

最新文章

  • 1
    当面试官再问我JS闭包时,我能答出来的都在这里了。
    47
  • 2
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    29
  • 3
    Node.js 中实现多任务下载的并发控制策略
    34
  • 4
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 5
    【JavaScript】深入理解 let、var 和 const
    49
  • 6
    【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
    47
  • 7
    【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
    57
  • 8
    【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
    57
  • 9
    如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
    72
  • 10
    【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
    57