热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于console对象的log方法

Vara0,b[],c{},d‘’;Console.log(!a);Console.log(!b);Console.log(!c);Console.
Var a = 0,
b = [] ,
c ={},
d =‘’;
Console.log(!a);
Console.log(!b);
Console.log(!c);
Console.log(!d);
Console.log(a&&b&&c&&d);
Console.log(a||b||c||d);
Console.log(!~b.push(a));


输出结果是?
在firebug里调试为nothing。

14 个解决方案

#1


我从不在这个上面浪费时间

!~b.push(a)
我手下写这样的代码 说不出理由我直接抽

#2


引用 1 楼 KK3K2005 的回复:
我从不在这个上面浪费时间

!~b.push(a)
我手下写这样的代码 说不出理由我直接抽

你以为你是谁? John Resig ?欠抽

#3


var a = 0;

var b = [];

var c ={};

var d ='';

console.log(!a);

console.log(!b);

console.log(!c);

console.log(!d);

console.log(a&&b&&c&&d);

console.log(a||b||c||d);

console.log(!~b.push(a));
你写的什么啊

#4


!a 等  都把它转换为boolean型了吧

#5


引用 2 楼 rayaspnet 的回复:
Quote: 引用 1 楼 KK3K2005 的回复:

我从不在这个上面浪费时间

!~b.push(a)
我手下写这样的代码 说不出理由我直接抽

你以为你是谁? John Resig ?欠抽

关键是
1。别人很难简单的读懂类似的代码(几个月后你自己也看不懂了)
2。这个代码在不同地方不保证结果相同
3。我手下不是John Resig 
所以要抽

#6


引用 5 楼 KK3K2005 的回复:
Quote: 引用 2 楼 rayaspnet 的回复:

Quote: 引用 1 楼 KK3K2005 的回复:

我从不在这个上面浪费时间

!~b.push(a)
我手下写这样的代码 说不出理由我直接抽

你以为你是谁? John Resig ?欠抽

关键是
1。别人很难简单的读懂类似的代码(几个月后你自己也看不懂了)
2。这个代码在不同地方不保证结果相同
3。我手下不是John Resig 
所以要抽

KK3K2005不愿意在这个上面浪费时间。
KK3K2005列举了三条关键理由为什么不愿意在这个上面浪费时间。
KK3K2005要抽写这样代码的人,前提是他手下。
得出以下三条结论:
KK3K2005的时间很宝贵,在不和别人交流代码的情况下(且不论代码好坏)。
KK3K2005不可能成为John Resig更不要妄想有John Resig 这样的手下。
KK3K2005其实是一个好的上司,只抽自己手下,猜测是恨铁不成钢。

KK3K2005的时间很宝贵,其实我觉得时间不重要,态度最重要。你是老总也好,小兵也罢,技术交流区最主要的还是交流。
个人欣赏关键三条中第二条那样的态度:2。这个代码在不同地方不保证结果相同。
随着时间的流逝,代码总能变好、变少。不知道人当怎样。
此致,无关代码。 

#7


引用 6 楼 a13501426 的回复:
Quote: 引用 5 楼 KK3K2005 的回复:

Quote: 引用 2 楼 rayaspnet 的回复:

Quote: 引用 1 楼 KK3K2005 的回复:

我从不在这个上面浪费时间

!~b.push(a)
我手下写这样的代码 说不出理由我直接抽

你以为你是谁? John Resig ?欠抽

关键是
1。别人很难简单的读懂类似的代码(几个月后你自己也看不懂了)
2。这个代码在不同地方不保证结果相同
3。我手下不是John Resig 
所以要抽

KK3K2005不愿意在这个上面浪费时间。
KK3K2005列举了三条关键理由为什么不愿意在这个上面浪费时间。
KK3K2005要抽写这样代码的人,前提是他手下。
得出以下三条结论:
KK3K2005的时间很宝贵,在不和别人交流代码的情况下(且不论代码好坏)。
KK3K2005不可能成为John Resig更不要妄想有John Resig 这样的手下。
KK3K2005其实是一个好的上司,只抽自己手下,猜测是恨铁不成钢。

KK3K2005的时间很宝贵,其实我觉得时间不重要,态度最重要。你是老总也好,小兵也罢,技术交流区最主要的还是交流。
个人欣赏关键三条中第二条那样的态度:2。这个代码在不同地方不保证结果相同。
随着时间的流逝,代码总能变好、变少。不知道人当怎样。
此致,无关代码。 

哈哈  其实抽之类的是开玩笑 可以忽略
大家刚开始的成长环境不一样
所以观点不同把
我进入这行时一直处于生活压力中 我需要做更多的项目来缓解压力(公司 自己 外包。。。)
很少有时间给我慢慢的去品味 语言的细节
我更偏向于  
了解开发需要语言的基本语法 了解语言能实现的领域
深入分析项目的需求
然后用自己很自我的累积的一点点面向对象面向环境面向接口面向流程面向配置的经验
来实现项目
并使之容易管理容易维护
很幸运有搜索的存在和各种前辈的指点我总能侥幸闯过一个个难关
闯的多了 你会发现 决策怎么实现需求是第一要务
目前而言 我更关注于怎么成为大脑 而不是别人挑选的武器
所以不要在太细节的东西上使用时间

此致,真无关代码。 

#8


引用 1 楼 KK3K2005 的回复:
我从不在这个上面浪费时间

!~b.push(a)
我手下写这样的代码 说不出理由我直接抽


顶一下吧,我想这个哥们想描述的,是不赞同在工作上使用生僻写法。也不赞同以生僻写法(或者所谓的高级写法)来判断某个手下好或者不好,代码到最后还是给人看的,所以简单易读很重要。

不过这里是学习的地方,并非是工作的地方,讨论研究还是挺有意思的

#9


好吧,我就是个打酱油的
看到这里这么热闹,进来看看...

#10


!~ 话说这种 处理的确不是正常 的js开发人员的思维....
以下是在firefox22beta里面测试的结果

Console.log(!a); true  因 0==false js就这么规定的...你只能咬他...
Console.log(!b); false b虽然是一个空的数组,但是它仍然是一个存在的数组,空盘子也是盘子
Console.log(!c); false 原因同上,是个空的json对象,但是它仍然存在
Console.log(!d); true  原因同第一个,0== '' ==false 这个跟其它的语言可能不太一样 
Console.log(a&&b&&c&&d); 0 按理这里应该输出的是个false,不清持为毛显示0,当然如果用if语句判断,这个肯定会走false对应的分支.
Console.log(a||b||c||d);[] 按理这里应该输出的是个true,不清楚为毛显示[],当然如果用if判断会走true分支.
Console.log(!~b.push(a));false  b.push(a) 就是给数组b加了一个元素a,但是这个时候用~操作符按位取反,那么数组b将被转换为字符串,执行数组的toStirng方法得到0,按位取反得到-1,  -1被!操作符操作时,被强转为boolean 值是 true,然后执行!操作,结果是false...


api里面有如下的表述:
1、所有一元运算符,如 ~ 运算符,以如下规则来求表达式的值: 

如果将它用于 undefined 或 null 表达式,则产生一个运行时错误。 
对象被转换成字符串。 
如果可能,字符串被转换为数字。如果不能,则产生一个运行时错误。 
Boolean 值被当作数字(如果是 false 则为 0,如果是 true 则为 1)。 


2、JScript 使用下面的规则,来把非 Boolean 值转换为 Boolean 值: 

所有对象都被认为是 true。 
字符串当且仅当为空时被认为是 false。 
null 和 undefined 被认为是 false。 
数字当且仅当为零时是 false。 

#11


引用 10 楼 wdbjsh 的回复:
!~ 话说这种 处理的确不是正常 的js开发人员的思维....
以下是在firefox22beta里面测试的结果

Console.log(!a); true  因 0==false js就这么规定的...你只能咬他...
Console.log(!b); false b虽然是一个空的数组,但是它仍然是一个存在的数组,空盘子也是盘子
Console.log(!c); false 原因同上,是个空的json对象,但是它仍然存在
Console.log(!d); true  原因同第一个,0== '' ==false 这个跟其它的语言可能不太一样 
Console.log(a&&b&&c&&d); 0 按理这里应该输出的是个false,不清持为毛显示0,当然如果用if语句判断,这个肯定会走false对应的分支.
Console.log(a||b||c||d);[] 按理这里应该输出的是个true,不清楚为毛显示[],当然如果用if判断会走true分支.
Console.log(!~b.push(a));false  b.push(a) 就是给数组b加了一个元素a,但是这个时候用~操作符按位取反,那么数组b将被转换为字符串,执行数组的toStirng方法得到0,按位取反得到-1,  -1被!操作符操作时,被强转为boolean 值是 true,然后执行!操作,结果是false...


api里面有如下的表述:
1、所有一元运算符,如 ~ 运算符,以如下规则来求表达式的值: 

如果将它用于 undefined 或 null 表达式,则产生一个运行时错误。 
对象被转换成字符串。 
如果可能,字符串被转换为数字。如果不能,则产生一个运行时错误。 
Boolean 值被当作数字(如果是 false 则为 0,如果是 true 则为 1)。 


2、JScript 使用下面的规则,来把非 Boolean 值转换为 Boolean 值: 

所有对象都被认为是 true。 
字符串当且仅当为空时被认为是 false。 
null 和 undefined 被认为是 false。 
数字当且仅当为零时是 false。 

Wdbjsh正解,对于测试结果有误的问题解决了我会贴上来。结贴。谢谢wdbjsh详细的解答。

#12


var a = 2,b = [],c = {},d = '';
console.log(a||b||c||d)   测试结果为2
console.log(a&&b&&c&&d)   测试结果为空串

var a =2,b =[];
console.log(a&&b)    结果是[]
还测试了其它的不同的语句,其中有一个object {}
说明这里与和或的并不是布尔值,不等同于一元操作符!。

#13


又测试了一下 发现 我想多了。。。

&&  和 || 执行的之后返回的不是true false 因为这个语句不会强转变量的类型,

它返回的其实是最后一个被执行 true false 判断的变量。。。

[] || '1' || 2 || {}   返回 []
'1' || [] || 2 || {}   返回 '1'
0 || '' || 2 || {}   返回 ''
0 || '1' || 2 || {}   返回 '1'
0 || null || 2 || {}   返回 2

[] && '1' && 2 && {} 返回 {}
[] && '1' && 0 && {} 返回 0
[] && '' && 2 && {} 返回 ''

#14


引用 13 楼 wdbjsh 的回复:
又测试了一下 发现 我想多了。。。

&&  和 || 执行的之后返回的不是true false 因为这个语句不会强转变量的类型,

它返回的其实是最后一个被执行 true false 判断的变量。。。

[] || '1' || 2 || {}   返回 []
'1' || [] || 2 || {}   返回 '1'
0 || '' || 2 || {}   返回 ''
0 || '1' || 2 || {}   返回 '1'
0 || null || 2 || {}   返回 2

[] && '1' && 2 && {} 返回 {}
[] && '1' && 0 && {} 返回 0
[] && '' && 2 && {} 返回 ''


wdbjsh测试的结果是正确的
即先判断布尔值  再输出变量
&& 是布尔值为真  则输出 后边的不再判断
|| 是布尔值为假  则输出  后边的不再判断。


推荐阅读
  • this prototype 闭包 总结
    this对象整理下思路:一般用到this中的情景:1.构造方法中functionA(){this.nameyinshen;}varanewA() ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 图解BOM与DOM的区别与联系
    区别BOM(BrowserObjectModel)BOM即浏览器对象模型,BOM没有相关标准,BOM的最核心对象是window对象。window对象既为javascript访问浏览 ... [详细]
  • JavaScript与DOM(上)——也适用于新手 – 深入理解JavaScript系列 23
    本文是《JavaScript深度解析》系列文章第23篇(共51篇)文档对象模 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • from:http:www.myquickphp.comarchives147(请求的跨域服务器不支持常规”?”查询请求时的解决方案)昨天第一次做VIP需求时,发现一 ... [详细]
  • ItriedtouseFirebugLite(viathebookmarkletandalsoaddingittooneofmywebsites).我尝试使用Fi ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
author-avatar
qtl4431541
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有