文档章节

JS里try...catch...finally详解,以及console日志调试(console.log、console.info等)

深圳大道
 深圳大道
发布于 2016/12/29 15:39
字数 615
阅读 4
收藏 0
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>测试页面</title>
    <script type="text/javascript">
        /*
            Error具有下面一些主要属性
            description: 错误描述 (仅IE可用).
            fileName: 出错的文件名 (仅Mozilla可用).
            lineNumber: 出错的行数 (仅Mozilla可用).
            message: 错误信息 (在IE下同description)
            name: 错误类型.
            number: 错误代码 (仅IE可用).
            stack: 像Java中的Stack Trace一样的错误堆栈信息 (仅Mozilla可用).
        */
        try {
            clear();
            //throw new Error("Whoops!");
        }
        catch (e) {
            /*除了console.log(),Firebug还支持多种不同的日志级别:debug、info、warn、error*/
            console.log(e.name)
            console.log(e.message)
            /*
				现总结Error.name的六种值对应的信息:
				1. EvalError:eval()的使用与定义不一致
				2. RangeError:数值越界
				3. ReferenceError:非法或不能识别的引用数值
				4. SyntaxError:发生语法解析错误
				5. TypeError:操作数类型错误
				6. URIError:URI处理函数使用不当
            */
            if (e instanceof EvalError) {  //Eval错误
                alert(e.name + ":" + e.message);
            }
            else if (e instanceof ReferenceError) {  //引用错误
                alert(e.name + ": " + e.message);
            }
        }
        finally {
            console.info("无论 try / catch 的结果如何都会执行");
        }

        try {
            throw new Date(); // 抛出当前时间对象
        }
        catch (e) {
            console.info(e.name);
            console.info(e.toLocaleString()); // 使用本地格式显示当前时间
        }

    </script>
</head>
<body>

</body>
</html>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>其它一些例子</title>
    <script type="text/javascript">
        try {
            console.info([1, 2, 3].toString()); //显示   1,2,3

            var a = 2..toString();  //(2).toString()  两种方式都是正确的
            console.info(a);

            var foo = { name: 'kitten' }
            console.log(foo.name); // kitten
            console.log(foo['name']); // kitten

            /*
                从对象中移除属性的唯一方法是使用“删除运算符”;
                将属性设置为未定义或NULL只移除与属性相关的值,但不移除键。
            */
            var obj = {
                bar: 1,
                foo: 2,
                baz: 3
            };
            obj.bar = undefined;
            obj.foo = null;
            delete obj.baz;

            for (var i in obj) {
                if (obj.hasOwnProperty(i)) {
                    console.log(i, '' + obj[i]);
                }
            }

            //打印0-9
            for (var i = 0; i < 10; i++) {
                setTimeout(function (e) {
                    console.log(e);
                }, 1000, i);
            }
            /*  undefined
                下面是一些返回值未定义(undefined)的例子:
                访问未修改的全局变量未定义。
                访问已声明但尚未初始化的变量。
                由于缺少返回语句的函数的隐式返回。
                不显式返回任何语句的返回语句.。
                不存在的属性查找。
                没有任何显式值传递的函数参数.。
                已设置为未定义值的任何。
                无效表达式(表达式)
            */

            //delte删除
            var obj = { x: 1 };
            obj.y = 2;
            delete obj.x; // true
            delete obj.y; // true
            console.log(obj.x); // undefined
            console.log(obj.y); // undefined
        } catch (e) {
            console.error(e.name);
            console.error(e.message);
        }
    </script>
</head>
<body>

</body>
</html>

本文转载自:http://blog.csdn.net/smartsmile2012/article/details/53737448

深圳大道
粉丝 3
博文 877
码字总数 0
作品 0
深圳
架构师
私信 提问
JavaScript Debug 之 Console

简评:只知道 console.log ?是时候提升一下对 console 的认知了。 JavaScript console 是现代浏览器的一种内置功能,它允许开发者: 查看网页上的错误和警告日志。 使用 JavaScript 命令与网...

极小光
2018/06/28
0
0
JavaScript调试技巧之console.log()详解

Javascript的console.log()用法 一、什么是console.log()? 除了一些很老版本的浏览器,现今大多数浏览器都自带调试功能; 即使没有调试功能,也可以通过安装插件来进行补充。比如,老版本的...

Amamatthew
2014/10/10
52
0
Firebug的Console的用法

Firebug对于Web开发人员来说,已经成为了不可或缺的工具,但是在我日常的工作中,常常感觉还没有能够深刻的挖掘出她的潜力,今天花了点时间仔细研究了Console和命令行的使用在提高工作效率方...

一路彷徨
2011/01/14
177
0
如何使用JavaScript控制台改进工作流程

作为Web开发人员,很有必要了解如何调试代码。后台开发我们经常使用外部库来记录日志,并在某些情况下格式化显示日志,前端我们会使用断点和控制台,但是我们浏览器的控制台比我们想象的要强...

新前端社区
2018/07/16
0
0
chrome控制台调试学习笔记 暂未整理

15:03 2015/12/7 chrome控制台调试学习: 推荐博客:http://www.cnblogs.com/Wayou/p/chrome-console-tips-and-tricks.html console.log 普通提示信息,可以自己打印需要的内容或变量 可以结...

兔子想飞
2015/12/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

web前端开发初级

Web 页面制作基础 Web 的相关概念 WWW Website URL Web Standard Web Browser Web Server HTML 基础 标记语言 从 HTML 到 XHTML HTML 的基本结构 HTML 的相关基本定义 HTML 常用开发工具 HT...

达达前端小酒馆
22分钟前
2
0
PostgreSQL 11.3 locking

rudi
今天
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
15
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部