创建: 2019/02/20

迁入: 删除【WIP】标签(因为随时更新, 不存在完成不完成)

    从【JavaScript 式与运算符】迁入typeof

更新: 2019/03/25 补充静态变量与参照变量

更新: 2019/06/06 增加==便于找到false判断, 增加false也是

parseInt, parseFloat, isNaN, Object.getPrototypeOf,

 静态变量与参照变量
 静态变量  数值,字符串, true/false, undefined/null, Symbol
 参照变量  除了静态变量外的一切量
 类相关
 判断类型
 typeof
 返回对象值数据类型,字符串

typeof "A" //string
 数据  返回值 
 数字和NaN  "number"
 字符串  "string"
 未定义值
 (就一个undefined)
 "undefined"
 空值null  "object"
 符号
 Symbol("sample")
 "symbol"
 函数以外的对象  "object"
 函数  "function"
   
   
 instanceof

a instanceof A // 对象 instanceof 构造函数

function F() {};
var obj = new F();
console.log(obj instanceof F); // true
console.log(obj instanceof Object); // true
console.log(obj instanceof Date); // false
 prototype.isPrototypeOf()

prototype.isPrototypeOf(对象);

function F() {};
var obj = new F();
console.log(F.prototype.isPrototypeOf(obj)); // true
console.log(Object.prototype.isPrototypeOf(obj)); // true
console.log(Date.prototype.isPrototypeOf(obj)); // false
 属性相关

判断指定属性是否存在

 in

注: 包括继承的(__proto__的)

  var a = { a: 1 };
var b = Object.create(a, {
b: {
value: 1,
writbale: true,
enumerable: true,
configurable: true
}
});
console.log(b);
console.log('------------------in--------------------');
console.log('b' in b); // true
console.log('a' in b); // true
console.log('--------------hasOwnProperty---------------');
console.log(b.hasOwnProperty('b')); // true
console.log(b.hasOwnProperty('a')); // false
 Object.prototype.hasOwnProperty(key)

注: 仅验证当前类(当前的prototype)

  var a = { a: 1 };
var b = Object.create(a, {
b: {
value: 1,
writbale: true,
enumerable: true,
configurable: true
}
});
console.log(b);
console.log('------------------in--------------------');
console.log('b' in b); // true
console.log('a' in b); // true
console.log('--------------hasOwnProperty---------------');
console.log(b.hasOwnProperty('b')); // true
console.log(b.hasOwnProperty('a')); // false
 Object.is(value1, value2)  判断value1和value2是否相同
 Object.isExtensible(obj)  判断是否可以扩展
 Object.isFrozen(obj)  判断是否被冻结
 Object.isSealed(obj)  判断是否受保护 
 运算符
 与运算符

a && b

若a可转换为true,则返回b;否则,返回a

 或运算符
a || b

若a可转换为true, 返回a; 否则返回b

 非运算符

!a

若a可转换为true, 返回false; 否则返回true

   
   
 会被转换为false的表达式

==

● null

● NaN

● 0

● "", '', ``

● undefined

● false

   
   

JavaScript 检验变量的更多相关文章

  1. javascript中变量提升的理解

    网上找了两个经典的例子 var foo = 1; function bar() { if (!foo) { var foo = 10; } alert(foo); } bar(); // 10 var ...

  2. javascript的变量作用域--对比js、php和c的for循环

    为什么要写这篇文章呢?主要是给自己提个醒,js的水很深,需要小心点儿才能趟过去,更何况自己不是专业人士,那就得更加小心了. 看下面的js代码: <!DOCTYPE html> <ht ...

  3. [转]深入理解JavaScript的变量作用域

    1.JavaScript的作用域链 2.函数体内部,局部变量的优先级比同名的全局变量高. 3.JavaScript没有块级作用域. 4.函数中声明的变量在整个函数中都有定义. 5.未使用var关键字定 ...

  4. JavaScript笔记:变量及其作用域

    一.变量的定义及声明 在javascript中变量仅仅是用来保存值的一个占位符而已,定义变量时要使用关键字var后跟一个变量名,如下所示: var message; //定义一个变量message,像 ...

  5. JavaScript中变量提升是语言设计缺陷

    首先纠正下,文章标题里的 “变量提升” 名词是随大流叫法,“变量提升” 改为 “标识符提升” 更准确.因为变量一般指使用 var 声明的标识符,JS 里使用 function 声明的标识符也存在提升( ...

  6. JavaScript中变量和函数声明的提升

    现象: 1.在JavaScript中变量和函数的声明会提升到最顶部执行. 2.函数的提升高于变量的提升. 3.函数内部如果用var声明了相同名称的外部变量,函数将不再向上寻找. 4.匿名函数不会提升. ...

  7. JavaScript 中变量、作用域和内存问题的学习

    这是我学习JavaScript的第二篇文章,之前做过几年的Java开发,发现JavaScript虽然也是面向对象的语言但是确实有很多不同之处.就本篇博客,主要学习总结一下最近学习到的JavaScrip ...

  8. Javascript的变量与delete操作符

    原文:http://charlee.li/javascript-variables-and-delete-operator.html 刚刚看到一篇好文(原文链接), 对Javascript中的dele ...

  9. 深入理解JavaScript的变量作用域(转载Rain Man之作)

    在学习JavaScript的变量作用域之前,我们应当明确几点: JavaScript的变量作用域是基于其特有的作用域链的. JavaScript没有块级作用域. 函数中声明的变量在整个函数中都有定义. ...

随机推荐

  1. HTML5+ 权限设置

    API分模块封装调用了系统各种原生能力,而部分能力需要使用到Android的permissions,以下列出了各模块(或具体API)使用的的权限: -------------------------- ...

  2. 洛谷 2868 [USACO07DEC]观光奶牛Sightseeing Cows

    题目戳这里 一句话题意 L个点,P条有向边,求图中最大比率环(权值(Fun)与长度(Tim)的比率最大的环). Solution 巨说这是0/1分数规划. 话说 0/1分数规划 是真的难,但貌似有一些 ...

  3. JSP中的内容布局

    参考 :https://stackoverflow.com/questions/10529963/what-is-the-best-way-to-create-jsp-layout-template ...

  4. ios 7 Autolayout bug

    ios 7 Autolayout bug 错误类型:NSInternalInconsistencyException(SIGABRT) 详情:Auto Layout still required af ...

  5. 现代JS中的流程控制:详解Callbacks 、Promises 、Async/Await

    JavaScript经常声称是_异步_.那是什么意思?它如何影响发展?近年来这种方法有何变化? 请思考以下代码: result1 = doSomething1(); result2 = doSomet ...

  6. 关于connect: network is unreachable 问题的解决【转】

    本文转载自:https://blog.csdn.net/liukun321/article/details/6662950 由于发现原创文章,在未署名作者及出处的情况下被转载.在以后所有的原创文章开头 ...

  7. C# 计时器 以“天时分秒毫秒”形式动态增加显示

    参考:http://zhidao.baidu.com/link?url=j-jxQJenrO54BSKJ_IkXWbhdDqbVLUyyenjjSGs8G0xdisgBZ0EMhzyWgARSFct6 ...

  8. Apache-POI 简单应用

    测试的Excel文件为四列的普通表格 jar包:poi-3.15-beta2.jar(Office2003xls文件).poi-ooxml-3.15-beta2.jar(Office2007xlsx文 ...

  9. 【MFC】动态创建CMFCToolbar图标不显示问题

    最近遇到一个问题,需要动态的从xml文件读取一系列图标文件,加载到一个toolbar中,由于使用的是vs2008 with sp1 feature pack,自然想到用CMFCToolbar来做,思路 ...

  10. MySQL_活动期间单笔订单最高的且满600元 判别是重激活客户还是10月注册客户_20161031

    将29号和30号两个需求放到一个表当中 首先都满足在10.29到31号之间单笔订单最高的且满600元 数据结构为一个用户一个订单ID 一行一行的 上面是第一个表 我们当做主表 a 第二个表 我们找注册 ...