`

js 一些你不可忽视的细节

    博客分类:
  • js
阅读更多

一、变量声明

如果在 var 语句中没有初始化变量,变量自动取 JScript 值 undefined。尽管并不安全,但声明语句中忽略 var 关键字是合法的 JScript 语法。这时,JScript 解释器给予变量全局范围的可见度。当在过程级中声明一个变量时,它不能用于全局范围;这种情况下,变量声明必须用 var 关键字。

 

当要声明一个变量并进行初始化,但又不想指定任何特殊值,可以赋值为 JScript 值 null

 

在 JScript 中 nullundefined 的主要区别是 null 的操作象数字 0,而 undefined 的操作象特殊值NaN (不是一个数字)。对 null 值和 undefined 值作比较总是相等的。

 

二、判断对象 undefined

// 这种方法不起作用

if (x == undefined)

    // 作某些操作

 

// 这个方法同样不起作用- 必须检查

// 字符串 "undefined"

if (typeof(x) == undefined)

    // 作某些操作

 

// 这个方法有效

if (typeof(x) == "undefined")

or

if (typeof(x) === "undefined")

 

三、特殊的内部函数eval

var anExpression = "6 * 9 % 7";

var total = eval(anExpression); // 将变量 total 赋值为 5。

var yetAnotherExpression = "6 * (9 % 7)";

total = eval(yetAnotherExpression) // 将变量 total 赋值为 12。

 

四、Jscript 支持四种类型的对象

       内部对象、生成的对象、宿主给出的对象(如 Internet 浏览器中的 window 和 document)以及 ActiveX 对象(外部组件)。

 

五、构造函数

// pasta 是有四个参数的构造器。
// 第一部分与上面相同。
function pasta(grain, width, shape, hasEgg)
{
    // 用什么粮食做的?
    this.grain = grain;

    // 多宽?(数值)
    this.width = width;     

    // 横截面形状?(字符串)
    this.shape = shape;   

    // 是否加蛋黄?(boolean)
    this.hasEgg = hasEgg;  

    // 这里添加 toString 方法(如下定义)。
    // 注意在函数的名称后没有加圆括号;
    // 这不是一个函数调用,而是
    // 对函数自身的引用。
    this.toString = pastaToString;
}

// 实际的用来显示 past 对象内容的函数。 
function pastaToString()
{
    // 返回对象的属性。

    return "Grain: " + this.grain + "\n" +
        "Width: " + this.width + "\n" +
        "Shape: " + this.shape + "\n" +
        "Egg?: " + Boolean(this.hasEgg);
}

 

六、Jscript 保留字

保留词

break delete function return typeof
case do if switch var
catch else in this void
continue false instanceof throw while
debugger finally new true with
default for null try  

 

为将来保留的词

abstract double goto native static
boolean enum implements package super
byte export import private synchronized
char extends int protected throws
class final interface public transient
const float long short volatile

 

当选择标识符时避免使用已经在内部 Jscript 对象或函数中使用的词,如 StringparseInt

 

七、使用构造函数来创建对象

var myObject = new Object();             // 创建没有属性的通用对象。
var myBirthday = new Date(1961, 5, 10);  // 创建一个 Date 对象。
var myCar = new Car();                   // 创建一个用户定义的对象,并初始化其属性。

 

八、js模拟jQuery trim函数

// String 构造函数的原型对象的一个方法。
String.prototype.trim = function()
{
    // 用正则表达式将前后空格
    // 用空字符串替代。
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

 

九、== 与 === 区别

JScript 是一种具有自动强制的自由类型语言。因此,尽管实际上不同类型的值是不相等的,但对下述示例中的表达式求值都将得到 true。 

 

"100" == 100;

false == 0;

要核对类型与值都一致,用“严格相等”运算符(===)。下面两个表达式的值为 false:

 

"100" === 100;

 

false === 0;

 

 

 

 

 

分享到:
评论

相关推荐

    20190313-100538-非对称电容在变压器油中10kv高压电作用下产生力的现象

    这个实验展示了非对称电容在高压电场中出现的力学现象。 非对称电容悬挂在悬臂梁传感器上,变压器油保持了两极的绝缘良好,高压产生的力的效应使得传感器测量的非对称电容的重量减轻。 这个实验有力的驳斥了用于解释非对称电容力学现象的离子风假说。 实验使用设备为STM32F429+HX711+悬臂梁传感器,上位机由C# WPF实现。

    基于以太坊区块链的车险理赔系统全部资料+详细文档.zip

    【资源说明】 基于以太坊区块链的车险理赔系统全部资料+详细文档.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    银行家算法的C++实现.zip

    银行家算法 【项目资源】:包含前端、后端、移动开发、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源,毕业设计等各种技术项目的源码。包括C++、Java、python、web、C#、EDA等项目的源码。 【适用人群】:适用于希望学习不同技术领域的初学者或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

    基于MATLAB公路裂缝检测系统【含界面GUI】.zip

    计算机网络课后题答案

    基于hyperledger fabric区块链的工作流审批应用全部资料+详细文档.zip

    【资源说明】 基于hyperledger fabric区块链的工作流审批应用全部资料+详细文档.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    【创新未发表】基于蝠鲼觅食优化算法MRFO-Kmean-Transformer-LSTM实现负荷预测附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    JEEWEB Mybatis版本是一款基于SpringMVC+Spring+Mybatis+Mybatis Plus的JAVA WEB敏捷开发系统.zip

    JEEWEB Mybatis版本是一款基于SpringMVC+Spring+Mybatis+Mybatis Plus的JAVA WEB敏捷开发系统.zip

    毕业设计-基于微信小程序的共享雨伞租借系统项目源码

    毕业设计-基于微信小程序的共享雨伞租借系统项目源码,本项目是一套98分毕业设计系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业,包含:项目源码、项目说明等。该项目可以直接作为毕设使用,项目都经过严格调试,确保可以运行! 毕业设计-基于微信小程序的共享雨伞租借系统项目源码,本项目是一套98分毕业设计系统,毕业设计-基于微信小程序的共享雨伞租借系统项目源码主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,毕业设计-基于微信小程序的共享雨伞租借系统项目源码可作为课程设计、期末大作业,包含:项目源码、项目说明等。该项目可以直接作为毕设使用,项目都经过严格调试,确保可以运行! 毕业设计-基于微信小程序的共享雨伞租借系统项目源码,本项目是一套98分毕业设计系统,毕业设计-基于微信小程序的共享雨伞租借系统项目源码主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,毕业设计-基于微信小程序的共享雨伞租借系统项目源码可作为课程设计、期末大作业,包含:项目源码、项目说明等。该项目可以直接作为毕设使用,项目都经过严格调

    【创新未发表】基于布谷鸟优化算法CS-Kmean-Transformer-BiLSTM实现负荷预测附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    朴素贝叶斯分类器算法Python代码实现

    用Python代码实现了一个朴素贝叶斯分类器算法,代码中包含拟合函数、预测函数、简单数据运行示例。并列给出了调用sklearn中的代码。 代码解释说明的博文:https://blog.csdn.net/u013172930/article/details/144042608

    基于JAVA+SpringBoot+Vue+MySQL的音乐翻唱与分享平台 源码+数据库+论文(高分毕业设计).zip

    项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:maven 数据库工具:navicat

    基于JAVA+SpringBoot+Vue+MySQL的学生毕业离校系统 源码+数据库+论文(高分毕业设计).zip

    项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:maven 数据库工具:navicat

    我国2007-2022年上市银行绿色信贷余额、绿色信贷比率、资本充足率等关键指标数据-最新出炉.zip

    1、资源特点 全新整理:今年全新力作,手工精心打磨。 权威数据:数据来自权威渠道,精准可靠。 放心引用:杜绝数据造假,品质保证。 2、适用人群 在校专科生、本科生、研究生、大学教师、学术科研工作者 3、适用专业 经济学、地理学、城市规划、公共政策、社会学、商业管理、工商管理等

    论文实证模型(回归、面板熵值法、中介调节、内生性检验等代码+数据)-最新出炉.zip

    1、资源特点 全新整理:今年全新力作,手工精心打磨。 权威数据:数据来自权威渠道,精准可靠。 放心引用:杜绝数据造假,品质保证。 2、适用人群 在校专科生、本科生、研究生、大学教师、学术科研工作者 3、适用专业 经济学、地理学、城市规划、公共政策、社会学、商业管理、工商管理等

    OpenCV如何找到角点.docx

    前言 问:基于OpenCV如何找到角点,有什么思路?OpenCV方法有什么好的思路吗?找到下面的图中白色矩形的角点的方法。 其实就是用角点检测 + 轮廓分析 搞定。 OpenCV解决 基于OpenCV实验大师工具软件1.1 设计的流程如下: 最终每一步的运行结果如下: 面积计算数据跟统计结果如下: OpenCV工作流引擎SDK支持 通过导出的vm配置文件,加载到工作流引擎,可以实现流程复用,处理多张图像,支持的SDK调用代码如下: #include "main_workflow.h"#include <iostream>#include <fstream> int main(int argc, char** argv) { std::shared_ptr<QTongCoreCVWorkFlow> engine(new QTongCoreCVWorkFlow()); bool succ = engine->initWorkFlow("D:/12121.vm", "69585e470300cdb5a6910131eb639882"); if (!succ) {

    (完整数据)全国各省、市、县逐年水纹数据(降水量到2022

    数据年份:1950-2022年,年度数据 数据范围: 省级数据:全国33省份(含直辖市,香港/台湾); 城市数据:全国371城市地级市、直辖市、地区州盟 ; 区县数据:全国2876区县、市辖区、自治县、县域县级市;

    基于JAVA+SpringBoot+Vue+MySQL的网上商城购物系统 源码+数据库+论文(高分毕业设计).zip

    项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:maven 数据库工具:navicat

    editor是由web前端研发部开发的所见即所得富文本web编辑器.zip

    editor是由web前端研发部开发的所见即所得富文本web编辑器.zip开发

    【创新未发表】基于海鸥优化算法SOA-Kmean-Transformer-GRU实现负荷预测附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    精卫 - 30年前,50年后.mp3

    精卫 - 30年前,50年后.mp3

Global site tag (gtag.js) - Google Analytics