JavaScript中的"奇奇怪怪"

filter等方法的隐式转化
var list = [1,,2,,0,5,9];console.log(list[1]); // console: undefinedconsole.log(list[1] !== null); // console.log: undefined

list = list.filter(item => item !== null);// console: [1, 2, 0, 5, 9]
通过prototype骗过引擎
var proto = {};var obj = Object.create(proto);

function fn() {};fn.prototype = proto;

console.log(obj instance fn);// console: true
浮点数计算问题
0.1 + 0.2 === 0.3     // false0.1 + 0.05 === 0.15;  // false0.1 + 0.1 === 0.2;    // true0.1 + 0.3 === 0.4;    // true0.2 + 0.2 === 0.4;    // true0.05 + 0.25 === 0.3;  // true0.15 + 0.15 === 0.3;  // true
任何操作数与NaN进行关系比较, 结果都为false
"a" <  3; // false"a" >= 3; // false
操作未声明变量
var message; // 变量声明之后取得了默认值// var age;

console.log(message); // console: undefinedconsole.log(age);// Uncaught ReferenceError: age is not defined

// 不报错console.log(typeof message); // console: undefinedconsole.log(typeof age);     // console: undefined

console.log(window.message); // console: undefinedconsole.log(window.age);     // console: undefined  
console.log打印
var arr = [1, 2];console.log(arr); // console 显示[1, 2], 展开后实际没有内容, 长度为0

for(var i=0, len = arr.length; i < len; i++) {    arr.shift();}

原文地址:https://www.cnblogs.com/rencoo/p/10835885.html

时间: 2024-10-27 05:35:34

JavaScript中的"奇奇怪怪"的相关文章

奇奇怪怪

我觉得,上帝的确是在掷色子. 在寒风瑟瑟的2月,即将迎来春季的2月,枯萎的人们已经失去希望的2月, 在无比光辉而冰冷的2月, 脑子里突然浮起一个气泡:lrh在2017年2月2日晚上复习了概率论和数学期望. 又一个气泡:lrh在2016年12月7日哭干所有眼泪之后,纵身从广饶一中二校区教学楼顶轻轻跃下. 又一个气泡:lrh在2016年3月20日考试超常发挥,从而告别初中生活,成为初中的人赢. 又一个气泡:lrh在2016年2月21日某天深夜, 用一把平常用来削苹果的瑞士折叠刀割断了左手桡动脉.次日

自己实现的一个不会奇奇怪怪换行的TextView.

public class TextDrawView extends View { private int textColor = 0xffafafaf; private float textSize = 12; private String textToDraw = ""; private List<String> textLines=new ArrayList<String>(); private float lineMul=1.3f; TextPaint t

一些奇奇怪怪但很激励我的话

靠作弊和打表取得高分的学生在这条路上是走不了太远的.(来自知乎某回答) 当你学习到一定高度之后,许多别人眼中看似精妙的算法,在你眼中都成为了暴力,所以,暴力才是正解.(来自一位教练) 独行的路上亦可有光.(来自一位我很敬重的学姐) 希望就在前方.(来自同机房的一位大佬) 原文地址:https://www.cnblogs.com/valentino/p/11185233.html

javascript中奇怪事件

javascript中奇怪事件 为啥叫奇怪事件了,应该是我目前掌握的知识暂时不能解释这种现象滴呀(也许可以用事件流的概念来解释滴呀) 看布局: #hideInfo{ height:100px; width:100px; background:green; position:absolute; top:20px; left:-90px; } #hideInfo span{ height:100px; width:100px; background:blue; position:absolute;

javascript中奇怪的if-else if-else

最近脑袋有点晕了,在javascript中写if-else if-else 的代码时候,居然给else添加了条件.代码如下: <script> var i=10; if(i<=10) { alert(111); } else(i>10) { alert(222); } </script> 在IE9和chrome下执行这段脚本,发现并没有提示js错误,程序的执行结果是:先弹出111对话框,后弹出222对话框.也就是说if和else这2个分支都会执行,这根传统的c/java

深刻领悟javascript中的exec与match方法之异同

阅读本文之前,请先看下面一道题: 题目17:Read the following javascript code: var someText="web2.0 .net2.0"; var pattern=/(\w+)(\d)\.(\d)/g; var outCome_exec=pattern.exec(someText); var outCome_matc=someText.match(pattern); What is outCome_exec[1] and outCome_matc[

JavaScript中的回调函数

在学习JavaScript的过程中遇到了很多,使用到回调函数的例子,出现了许多疑问,就由一个栗子开始吧: 在JavaScript中接触的第一个回调函数是在setInterval()和setTimeout()中出现的: 1 var num = 10; 2 3 var interValId = setInterval(function (){ 4 console.log(num); 5 num--; 6 if(num==0){ 7 clearInterval(interValId); 8 } 9 }

深入理解JavaScript中创建对象模式的演变(原型)

创建对象的模式多种多样,但是各种模式又有怎样的利弊呢?有没有一种最为完美的模式呢?下面我将就以下几个方面来分析创建对象的几种模式: Object构造函数和对象字面量方法 工厂模式 自定义构造函数模式 原型模式 组合使用自定义构造函数模式和原型模式 动态原型模式.寄生构造函数模式.稳妥构造函数模式 第一部分:Object构造函数和对象字面量方法 我之前在博文<javascript中对象字面量的理解>中讲到过这两种方法,如何大家不熟悉,可以点进去看一看回顾一下.它们的优点是用来创建单个的对象非常方

JavaScript中valueOf函数与toString方法的使用

所有JS数据类型都拥有valueOf和toString这两个方法,null除外. JavaScript中valueOf函数方法是返回指定对象的原始值. 使用方法: object.valueOf( ). object是必选参数,是任意固有 JavaScrip对象. JavaScript 的 valueOf() 方法 valueOf() 方法可返回 Boolean 对象的原始值. 用法booleanObject.valueOf(),返回值为booleanObject 的原始布尔值.如果调用该方法的对