Javascript 正确使用方法 二

Javascript合併單元格方法總結 合併單元格方法一: HTML: <table id="table1" border="1" class="tbspan"> <tr> <td>A</td> <td>B</td> <td>B</td> ... 阅读详情

好的,废话不多说,接着上篇来.

变量(variables)

始终使用 var 关键字来定义变量,如果不这样将会导致 变量全局化,造成污染.

//bad

superPower = new SuperPower();

//good

var superPower = new SuperPower();

使用 一个 var关键字来定义多个变量...并且每个变量一行..

    // bad
    var items = getItems();
    var goSportsTeam = true;
    var dragonball = 'z';

    // good
    var items = getItems(),
        goSportsTeam = true,
        dragonball = 'z';

//我个人更喜欢下面这种定义方法.

    var items = getItems()
        ,   goSportsTeam = true
        ,   dragonball = 'z';


将未赋值的变量放在后面...

    // bad
    var i, len, dragonball,
        items = getItems(),
        goSportsTeam = true;

    // bad
    var i, items = getItems(),
        dragonball,
        goSportsTeam = true,
        len;

    // good
    var items = getItems(),
        goSportsTeam = true,
        dragonball,
        length,
        i;

将变量的定义和赋值放在 作用域的顶部,这样能避免 变量提升相关的问题..

    // bad
    function() {
      test();
      console.log('doing stuff..');

      //..other stuff..

      var name = getName();

      if (name === 'test') {
        return false;
      }

      return name;
    }

    // good
    function() {
      var name = getName();

      test();
      console.log('doing stuff..');

      //..other stuff..

      if (name === 'test') {
        return false;
      }

      return name;
    }


    // bad
    function() {
      var name = getName();

      if (!arguments.length) {
        return false;
      }

      return true;
    }

    // good
    function() {
      if (!arguments.length) {
        return false;
      }

      var name = getName();

      return true;
    }

//上面这个例子我感觉这么奇葩呢...这个name根本没有起到任何作用啊...


Hoisting (国内书籍翻译为 提升)

变量的定义会得到提升,也就是移动到作用域的顶部 ,但是 赋值并没有得到提升..

举个简单的例子..对于简单的 var a = 10;

其实经历的是两个过程,

① var a;

② a = 10;

恩,,变量提升只是提升的第一部分,而第二部分并没有得到提升...

    function example() {
      console.log(declaredButNotAssigned); // => undefined
      var declaredButNotAssigned = true;
    }


    function example() {
      var declaredButNotAssigned;
      console.log(declaredButNotAssigned); // => undefined
      declaredButNotAssigned = true;
    }


匿名函数表达式提升的只是变量的名称,而不是函数的定义..

    function example() {
      console.log(anonymous); // => undefined

      anonymous(); // => TypeError anonymous is not a function

      var anonymous = function() {
        console.log('anonymous function expression');
      };
    }


命名函数提升的同样是变量的名称,而不是函数的名称.或者是函数体..

    function example() {
      console.log(named); // => undefined //变量名得到提升..

      named(); // => TypeError named is not a function //函数体没有得到提升..

      superPower(); // => ReferenceError superPower is not defined //函数名没有得到提升..

      var named = function superPower() {
        console.log('Flying');
      };
    }


函数定义同时提升他们的名称和函数体..

    function example() {
      superPower(); // => Flying

      function superPower() {
        console.log('Flying');
      }
    }

//这也就是为什么我们在我们代码的底部通过这种方式能够访问,但是按照之前的方式定义函数无法访问的原因了..

//现在大家明白了吧..


Contional Expressions & Equality  条件表达式和 等式..

条件表达式会通过 类型转换 来对括号内的内容进行评估来返回 Boolean值..

转换会遵循以下规则:

1,对象返回 true

2,underfined 返回false

3, Null 返回false

4, Booleans类型就返回自己.

5, +0,0,-0,NaN 返回false ,其他返回true

6, 空字符返回false..//注意注意,如果你的字符串里面有 空格,则同样会返回true


if([0]) {

  //true

  //这个array 是我们之前提过的,是通过字面量来进行数组的创建.... 当然返回true,不要被 0 迷惑了..

}

    // bad
    if (name !== '') {
      // ...stuff...
    }

    // good
    if (name) {
      // ...stuff...
    }

    // bad
    if (collection.length > 0) {
      // ...stuff...
    }

    // good
    if (collection.length) {
      // ...stuff...
    }


代码块..

    // bad
    if (test)
      return false;

    // good
    if (test) return false;

    // good
    if (test) {
      return false;
    }

    // bad
    function() { return false; }

    // good
    function() {
      return false;
    }

    // bad
    var x=y+5;

    // good
    var x = y + 5;


JScript中文帮助:全面掌握JScript脚本编程 本文还有配套的精品资源,点击获取 简介:JScript是基于ECMAScript标准的微软脚本语言,主要用于Windows和IE浏览器。本帮助文件提供了对JScript基础语法、函数、对象、事件处理、AJAX、DOM与BOM操作等核心知识点的详细解释,并介绍了不同版本的JScript差异、浏览器兼容性问题。文件内含API参考、教程和示例代码,旨在帮助初学者深入理解和应用JS... 阅读详情

相关推荐

激光雷达接收芯片选型指南:APD、SiPM、SPAD阵列的优缺点对比

本文深入对比了激光雷达接收芯片APD、SiPM和SPAD阵列的核心技术原理与性能差异。APD作为线性模式工作的稳健选择,动态范围大;SiPM具备单光子探测和高增益优势;而SPAD阵列凭借像素级数字读出和集成TDC,在时间分辨率与系统集成度上领先。文章从灵敏度、时间精度、动态范围及系统成本等多维度剖析,为不同应用场景(如车载雷达、Flash LiDAR、消费电子)的芯片选型提供实战指南。

ik6789012的博客 655

Javascript 正确使用方法

今天在github 上面找到了一个关于如何正确使用javascript 来进行我们的程序开发.我就恬不知耻的来了个原创啊..坑爹啊.拿来和大家分享一下吧. A mostly reasonable approach to Javascript.     Types //类型     Objects //对象     Arrays //数组     Strings //字符串     Fu

Vein Cook 1168

Cursor Cloud Agent:云原生编程工作流的底层重构

编程工作流正从本地计算范式转向云原生执行范式。Cloud Agent 本质是将代码理解、生成、执行与调试等核心能力下沉至隔离、可控、按需分配的云端虚拟机,通过 Firecracker 微虚拟机实现亚秒级启动,并依托上下文快照、环境镜像化和内核级沙箱保障一致性、算力弹性与数据安全。这一范式突破了传统本地 AI 编程助手在环境依赖、调试能力与企业合规上的根本局限,使 IDE 从编辑工具升维为分布式开发指挥中心。本文深入解析其运行机制与工程落地实践。

weixin_34354173的博客 336

js 中如何获取制定的cook信息。

前提: 在js中获取cook最蛋疼,因为他没按照cook变量的值一个个的存好,而是所有的变量都存在一起,只能字段一个个取出来,才能获得某个cook的值。 所以写一个function,来获得某个变量的值: function get_cookie(name) { var bikky = document.cookie;

domorejojo 2935

C# chart以鼠标所在位置为中心进行缩放

以前都用labview做一些软件,但给出去总是会遇到版本,安装包过大等一些问题,于是想自学C#,记录一下使用过程中遇到的一些问题和解决措施,便于日后回顾。 在这个项目中需要绘制折线图,由于数据比较大,需要对图表进行缩放操作,以鼠标为中心对图表进行缩放,在网上查找了一些资料没找到我想要的,于是自己想了一个解决方案,可以基本实现,但略显繁琐,由于刚开始学习C#,对一些操作不太了解,若以后遇...

fei的博客 6363

[运营] ext4分区遇到“Structure needs cleaning”问题,怎么解决 - 结构需要清理

摘要:当ext4文件系统出现"Structure needs cleaning"错误时,表明存在元数据损坏。解决方法包括:1)检查系统日志确认错误;2)卸载受影响分区;3)使用fsck.ext4分步骤修复(先测试模式-n,再保守修复-p,严重损坏时用-y强制修复);4)检查修复结果;5)重新挂载。若数据丢失可尝试从lost+found恢复。建议定期备份、避免异常关机并定期检查文件系统,以防硬件故障导致类似问题。修复前务必备份重要数据。

Rudon滨海渔村的博客 1355

如何在jscript中使用集合

集合的概念在windows脚本中很常用,尤其是在wmi方面的脚本中基本都会遇到集合操作。在vbscript里遍历集合的方法很简单,For Each循环就可以达到目的。但是在jscript中如何使用集合,却困扰了我很长时间,连msdn中都找不到好的例子,令我一度悲观的认为jscript不能进行集合操作。 在我几乎快要放弃的时候,又翻出一本vbscript wmi的电子书看了看,竟然找到了jscri...

weixin_33812433的博客 222

从 0 到 1,实战 Power BI 电商销售可视化看板全流程

本文详细介绍了从零开始使用Power BI构建电商销售可视化看板的全流程,涵盖数据准备、建模、可视化设计及高级功能应用。通过实战案例展示如何将复杂销售数据转化为直观图表,帮助电商从业者快速掌握销售趋势、热销产品和用户画像等关键信息,提升数据分析效率。

weixin_29061041的博客 483

JS中异步请求无法返回给方法正确的布尔值 - 解决方案

JS中异步请求无法返回给方法正确的布尔值 - 解决方案1. 问题现象2. 解决方案 1:改变 async 为同步 + 变量赋值3. 解决方案 2:使用全局变量 + 写 get/set 方法4. demo 源码 1. 问题现象 普通的 ajax 校验会出现的问题:无法正确返回 boolean 值 false,因此无法正确拦截表单提交!!! // 注册 $.ajax({ type : "post", async : true, url : "<%=request.getContextPa

Hello, New World! 1573

12-RK平台U-Boot启动流程

先看概述,把这一章要回答的问题摆出来,带着问题听。RK 特有的 BootROM -> MiniLoader -> SPL -> U-Boot -> Kernel。这是因为 RK 平台使用闭源的 DDR 初始化固件,需要通过 MiniLoader 来加载和运行。为什么多一层?这是 RK 平台的特殊性决定的。RK 平台使用闭源的 DDR 初始化固件,这段代码 Rockchip 不开源,只能以二进制形式提供,它需要一个载体来加载和运行,这个载体就是 MiniLoader。

内核笔记 1145

社交媒体文章内容与评论抓取:Python 爬虫实战教程

通过本文的介绍,我们学习了如何使用 Python 编写爬虫,抓取社交媒体平台的文章内容和评论。我们详细介绍了如何使用requestsSelenium和Tweepy等工具,抓取微博和 Twitter 上的公开数据。同时,我们还讨论了如何处理反爬虫机制,避免账号或 IP 被封禁。抓取社交媒体数据是一个充满挑战和乐趣的过程,掌握这些技术后,你可以在大数据分析、情感分析和舆情监测等方面得到更深层次的应用。

2201_76125261的博客 1708

vue中如何直接使用方法返回的值_vue.js,_使用vuejs时一个方法怎么访问另一个方法返回的数据?,vue.js - phpStudy...

使用vuejs时一个方法怎么访问另一个方法返回的数据?使用vuejs时一个方法怎么访问另一个方法返回的数据?具体代码如下:methods: {preview: function(e) {//该方法实现图片压缩后预览,并返回压缩后的图片var files = e.target.files; //接收表单中的数据//lrz是一个压缩图片的插件。下面压缩图片后预览并返回lrz(files[0], {wi...

weixin_39988888的博客 1234

模拟电路综合笔试题解析

本专栏预计更新60期,当前为第10期,文章约6000字,旨在帮助读者掌握模拟电路笔试的核心知识点与实战技巧。文章分为五个章节,涵盖基础理论、高频考点、大厂题目解析等内容。首先,文章详细解析了DC-DC与LDO的区别及选型依据,并通过真题分析帮助读者理解其应用场景。接着,文章深入探讨了运放电路设计、同步降压电路设计等高频考点,并结合实际案例提供解决方案。此外,文章还分享了特斯拉、华为、大疆等大厂的面试题及解析,帮助读者应对复杂电路设计挑战。最后,文章总结了模拟电路设计中的关键技巧与优化方法,为读者提供全面的笔

启芯硬件的博客 468

js Unterminated string constant 解决方法

原因1:读取js文件时选用的编码不匹配导致该错误。 解决办法: 方法1:修改js的存储编码。可以使用editplus打开js文件,再用匹配的的编码方式保存并取代原来的js文件即可,这种方式移植性较差。因为tomcat和websphere在读取同一文件可能选用的编码不同。建议使用方法2. 方法2:在include js时指定编码:&lt;script type="text/javascri...

学习笔记 2919

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

javascript判断日期奇偶_js验证日期格式

下面介绍两种JS验证的方式:方法一:JS:functioncheck(){var a = /^(\d{4})-(\d{2})-(\d{2})$/if (!a.test(document.getElementById("TextBox1").value)) {alert("日期格式不正确!")return false}elsereturn true}HTML:上面的方法是验证YYYY-MM-DD日期...

weixin_39610631的博客 155

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

vue导入静态js,在vueJS中导入javascript类

I want to use a javascript class in may Vue application.My class looks like:class className {constructor() {...}function1() {...}static funtion2() {...}}I tried to import this class in my application ...

weixin_30016593的博客 865

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

如何正确使用 JavaScript 中的 slice() 方法

slice()是 JavaScript 中用于提取数组片段的强大方法。通过指定起始索引和结束索引,你可以创建新的子数组,用于各种操作和场景。它不仅能够帮助你轻松地处理数组的子集,还能保持原始数组的不变。掌握了slice()方法,你将更加自信地操作和处理数组数据。JavaScript(JS) 的 setTimeout 函数如何使用?一文讲解setTimeout 函数的用法JavaScript(JS)的 indexOf 方法如何使用?一文讲解 indexOf 的用法。

LiamHong_的博客 6910

JavaScript js JS 数组方法介绍总结及其使用

JavaScript JS 数组 最常用的数据结构 方法 声明和初始化数组,给数组赋值,以及添加和删除数组元素,二维数组,ES6 新增数组常用方法,示例,练习。

ccq的博客 1455

Vue.js 中 Vue 实例未正确挂载的问题及解决方法

在 Vue.js 开发中,Vue 实例未正确挂载是一个常见的问题。通过确保挂载点正确指定、确保挂载点在 DOM 中存在、避免挂载点被覆盖以及避免在挂载后修改挂载点,可以有效解决这些问题。希望本文的介绍能帮助最后问候亲爱的朋友们,并邀请你们阅读我的全新著作📚《Vue.js 3企业级项目开发实战(微课视频版》

有我更精彩的博客 1260

JavaScript 继承父类方法的正确姿势

JavaScript 继承父类方法的正确姿势 不想看前期的介绍可以直接划到最下面看总结和正确姿势,跳过原因的讲解。 初学 js ,总是喜欢把方法直接定义在对象内部,类似于 Java 那样。 下面定义一个简单 js 对象。 function Person() { var locVal = '冲冲冲'; this.info = function () { ...

Archiver的博客 1615

javascript对象排序_「JS很简单」JavaScript中正确使用 sort 方法

英文原文: 《Usar correctamente el método sort()》注意:内容有做精简和调整。在过去的几个星期里,我们在不同的团队中看到,一般来说都没有使用 Array.prototype.sort() 的习惯,并且不知道这种方法是如何工作的。今天我们将尝试简要描述它是如何工作的 .sort(),揭示它的一些秘密。1. 修改原数组在这种情况下,我们必须记住,此方法通过对数组进行排...

weixin_39607873的博客 241

javascript(js)中使用BigDecimal

了解了java中使用BigDecimal之后改在javascript上使用BigDecimal javascript上使用BigDecimal 与java中使用还是有很大区别的 定义BigDecimal类型 var x = new BigDecimal(); 此时的 x相当于一个空的BigDecimal类型的数据 将数据改为BigDecimal类型 如修改 var x = 1; 相当于将x的值重新定义在赋值给x x = new BigDecimal(""+x); 多加注意 new BigDecim

xiaojiakun的博客 1万+

ActiveMQ使用(二):在JavaScript中使用mqtt.js

ActiveMQ使用(二):在JavaScript中使用mqtt.js

ice_bear221的博客 1067

javascript在HTML中使用方法,在html中使用Javascript的方法分享(图文)

你知道在HTML页面中使用Javascript有哪几种方式吗?本文介绍两种常见的在html页面中应用javascript代码的方式。方法一,在html页面中直接引入javascript代码1,嵌入的Javascript代码这种方式是直接将Javascript代码写在HTML中,例如:复制代码 代码示例:在HTML中使用Javascript - jquery中文网 - Javascript测试页面a...

weixin_28951059的博客 2798

JS(二)--Javascript的使用

JS(二)--变量和函数JavaScript嵌入页面的方式变量获取元素方法一操作元素属性条件语句循环语句函数数组及操作方法获取元素方法二 JavaScript嵌入页面的方式 1、行间事件(主要用于事件) <input type="button" name="" onclick="alert('ok!');"> 2、页面script标签嵌入 <script type="text/...

-_^汪洸*的博客 611
上一篇: Javascript 正确使用方法
下一篇: Just a complaint about the college examinations
jjvein
博客等级 码龄14年 29粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值