google chrome调试

1,同样的代码使用firefox运行不会报错,正常运行。

2,同样的代码使用google chrome 有时候会误报网页?

如下:代码可以在 firfox edge正常运行,在chrome  opera 运行报错。应该是兼容性问题。

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
         function BinaryTree(){
            //初始化节点对象,包括3个属性
            var Node=function(key){
                this.key=key;
                this.left=null;
                this.right=null;
            };

var root=null;//根节点

//给当前节点添加左右孩子。
            var insertNode = function(node,newNode){
                //如果节点小于父节点,放在左边作为左孩子
                if (newNode.key<node.key) {
                    if (node.left===null) {
                        node.left=newNode;
                    }else{
                        insertNode(node.left,newNode);
                    }
                    //否则就放右边,作为右孩子
                }else{
                    if (node.right===null) {
                        node.right=newNode;
                    }else{
                        //递归,继续添加左右孩子节点。
                        insertNode(node.right,newNode);
                    }
                }
            }

//判断根节点是否为空。
            this.insert=function(key){
                var newNode=new Node(key);
                if (root===null) {
                    root=newNode;
                }else{
                    //给当前节点添加左右孩子节点。
                    insertNode(root,newNode);
                }
            }
         }

var nodes=[8,3,10,1,6,14,4,7,13];
         var BinaryTree=new BinaryTree();
         nodes.forEach(function(key){  //控制台,鼠标悬停key未定义,也不会往里面执行代码
            BinaryTree.insert(key);
         });
    </script>
</body>
</html>

====================

逻辑操作符  &&与  ||或  !非
一,&&与
只要有一个条件不成立就返回 false。
只要有一个条件不成立就返回 false。从第一个开始,一旦遇到false,就不会继续往下读取,直接返回当前操作数。

在有一个操作数不是返回布尔值的情况,那么逻辑与操作就不一定返回值。此时遵循以下几个规则:

1,如果第一个操作隐式类型转换后为true,则返回第二个操作数
    var a=10;
    var b=20;
    var c=30;
    var d;
    var name=null;
    var str="abc";
    console.log(a<b && a<c);  /*全部true,返回最后一个true*/
    console.log(str && c);  /*30 */
    /*str="abc" 这里有一个隐式类型转换 Boolean(str)返回值:true。
     Boolean(c)=Boolean(30) 隐式类型转换 返回值:true。返回第二个值,这里的值是30*/

var a ,b;
     console.log(null && undefined && 0); // 返回0 隐式类型转换全部false,则返回最后一个操作数。
     console.log(a && b); //返回undefined

console.log( c && 50 && str);  /*abc*/
    /*隐式类型转换,Boolean(c)返回值:true。
    饮食类型转换 Boolean(str) 返回值:true。 如果&&与中全部值返回true,则返回最后一个true对象没有进行隐式类型转换的值*/

2,如果第一个操作数隐式类型转换值为:false。则返回第一个操作数,指的是第一个返回值为:false,如果返回值为:true则跳过。
    var a=10;
    var b=20;
    var c=30;
   console.log(a>c && 88 && a>b); /*返回值:false  这里a>c的返回值就是:false*/
   console.log(a>c && 88 && a>b); /*返回值:false  这里a>c是第一个返回值false的对象*/
   console.log(0 && 88);  /*返回0 ,隐式转换Boolean(0)返回值:false。所以返回值是0。返回第一个false的对象的原值。*/

3,如果有一个操作数null,则返回null。
   console.log("" && 88 && a<b);    /*返回空值,在控制台中就是一个空格*/

4,如果有一个操作数为:undefined,则返回undefined。
    var d;
   console.log(a<c && 88 && d);  /*d  这里的d在上文中没有进行定义赋值,所以返回d*/

5,如果有一个操作数为:NaN,则返回NaN。
    var str="abc";
   console.log( a<c && a+str && 88);  /*88   这里Boolean(a+str)  这里的+变成连字符,所以返回值为:true。所有经过隐式转换返回值都为:true,则值默认返回最后一个原值 88。*/

console.log( a<c && a*str && 88); /*NaN   Boolean(a*str) a=10 str="abc" 数字和字符串相乘,返回值:NaN非数值*/

6,&&与 可以操作任意类型的数据

原文地址:https://www.cnblogs.com/Knowledge-is-infinite/p/10798573.html

时间: 2024-11-12 11:50:00

google chrome调试的相关文章

Google Chrome 调试JS简单教程[更新]

题外话,刚开始我写这篇内容只是将自己了解的一些知识放上来,不巧的是我分析了我的来访日志,很多朋友都有这个需求,为了大家没有白来,我决定充实下这篇文章.最近更新时间2014-02-14 chrome版本: 32.0.1700.107 m 我是一名忠实Chrome迷,使用它已经快有2年的历史了,整体给我的感觉就是清爽,快速,简洁.又打小广告了……^_^,虽然我知道IE8+也有调试工具,包括火狐的什么XXBUG,但是我用过之后,个人还是十分偏爱chrome的debug. chrome对于在前端打拼的兄

Google Chrome调试js入门

1 我们要调的json数据见下图,这里不涉及和后台的交互. 2 我们在chrome中打开开发者工具,打开方式如下图,我们也可以使用快捷键F12来打开.选择我们要调试的文件,相信你能找到,^_^. 3 设置断点的设置,我在11行设置了断点,设置方法左侧点击即可,我太喜欢这个断点了,看起来真漂亮.刷新一下页面,执行如下图: 4 在向下执行之前,我们直接输入json(我们的对象名),看看对象结构,可以非常清晰的看到json到底是个什么东西,不用太多的解释,如下图: 5 按F10向下执行,我们依次输入我

Google Chrome 调试

[原文地址:http://www.cnblogs.com/QLeelulu/archive/2011/08/28/2156402.html ] 在Google Chrome浏览器出来之前,我一直使用FireFox,因为FireFox的插件非常丰富,更因为FireFox有强大的Firebug,对于前端开发可谓神器. 在Chrome出来的时候,我就喜欢上它的简洁.快速,无论是启动速度还是页面解析速度还是Javascript执行速度(现在的FireFox4也比之前的FireFox3有很大的进步).不过

google chrome 调试技巧:监控 DOM 元素被修改

在很多时候, 页面上一个元素的属于被修改.删除,子节点的添加与修改,很难一下找到对应的代码,在 google chrome 开发者工具里, 提供了对 DOM 元素的监控: 在 Elements 标签, 右击有监控的元素,在弹出来的菜单中有一个 Break on 的菜单项, 下面有三个子菜单项 subtree modifcations: 监控当前元素子级元素结构的变化,添加结点和删除节点,移动节点不知道算不算. attribute modifcations: 监控当前元素属性的变化. node r

Google Chrome调试js代码

你 是怎么调试 JavaScript 程序的?最原始的方法是用 alert() 在页面上打印内容,稍微改进一点的方法是用 console.log() 在 JavaScript 控制台上输出内容.嗯~,用这两种土办法确实解决了很多小型 JavaScript 脚本的调试问题.不过放着 Chrome 中功能越发强大的开发者工具不用实在太可惜了.本文主要介绍其中的 JavaScript  断点设置 和 调试 功能,也就是其中的 Sources Panel(以前叫 Scripts).如果你精通 Eclip

Google Chrome调试js

1. 你可以直接在页面上点击右键,然后选择审查元素: 或者在Chrome的工具中找到: 或者,你直接记住这个快捷方式: Ctrl+Shift+I (或者Ctrl+Shift+J直接打开控制台),或者直接按F12. 参考资料: http://www.cnblogs.com/moonvan/archive/2011/12/09/2282710.html http://jingyan.baidu.com/article/e9fb46e19c8b167521f766f9.html

Google Chrome Uncaught TypeError: object is not a function

<html> <script type="text/javascript"> function testForm(){ alert("hello world ! "); } </script> <body> <form name="testForm" action="" > <input type="button" onclick="

Google Chrome浏览器调试功能介绍

作为Web开发人员,我为什么喜欢Google Chrome浏览器 [原文地址:http://www.cnblogs.com/QLeelulu/archive/2011/08/28/2156402.html ] 在Google Chrome浏览器出来之前,我一直使用FireFox,因为FireFox的插件非常丰富,更因为FireFox有强大的Firebug,对于前端开发可谓神器. 在Chrome出来的时候,我就喜欢上它的简洁.快速,无论是启动速度还是页面解析速度还是Javascript执行速度(现

IntelliJ IDEA 在Google Chrome上不能调试JavaScript错误处理

最近在Intelli IDEA 14.1上调试,总是出现Waiting for connection from JetBrains IDE support extension 解决方案如下: 首先安装好Google Chrome浏览器,安装好JetBrains IDE support 在Google Chrome上的调试扩展,错误原因就是该浏览器没有该调试的扩展. 链接如下 http://download.csdn.net/detail/liming199364/8826047 网上说的 htt