zoukankan      html  css  js  c++  java
  • 【转】JavaScript console.log %c %o %s %d %f

    转:https://blog.csdn.net/wuyujin1997/article/details/111767814

    Intro
    字符串拼接/占位符替换
    几乎所有语言都有输出函数,当需要快速拼接多个参数 然后输出的时候,有各自的printf函数和%xxx占位符作为解决方案:

    C

    printf("age is %d
    ", 23); // age is 23
    

    Java

    System.out.printf("hello %s
    ", "world"); // hello world
    String.format("hello %s
    ", "world");
    

    Python

    print("hello %s %s"%("world", 123)) # hello world 123 注意%和参数列表的小括号


    JavaScript中的输出函数console.log也有这样的功能。
    (其实JS中的console.log()本来就可以依次传入不定数量个参数,完成输出)

    JavaScript 输出函数的占位符
    以下占位符和其他语言不完全相同:

    %s 字符串(整数、小数也可以打印)
    %d 整数
    %f 小数
    
    %o 对象
    
    %c 后面字符串的样式
    

      

    以上列表可能不全,只是我暂时接触过的,后面遇到新的会补充,也欢迎大家在评论区告诉我新的。感谢。

    用法见下。

    demo

    console.log("s测试: %s-%s-%s-%s", "wuyujin", 1997, 123.456, {name:"aaa",age:22});
    
    console.log("d和f测试: %d-%f", 1997, 123.456);
    
    var obj = {name:"aaa", age:22, contact: {qq:123,wechat:"asd",tel:123456}};
    console.log("o测试: %o %O", obj, obj);
    
    var str = "%c hello %c world";
    var arg1 = "color: #fadfa3; background: #030307; padding:5px 0;";
    var arg2 = "background: pink; padding:5px 0;";
    console.log(str, arg1, arg2);
    

      

    运行结果:


    应用
    之前讲 console.log 本身就可以一次性传入不定数量个参数,进行打印,那么%xxx之类的占位符还有存在的必要吗?
    有的,如下:

    var name = "wuyujin";
    var birth = 1997;
    var score = 123.456;
    var info = {addr:"SH", age:23, concact: {tel:123,qq:456,wechat:"id123"}};
    

      

    对以上信息拼接打印,有两种方式:

    console.log("我的名字:", name, ",生于:", birth, ",成绩:", score, ",其他信息", info);
    console.log("我的名字:%s,生于:%d,成绩:%f,其他信息:%o", name, birth, score, info);
    

      

    第二种更清晰(仅个人感觉,人与人观念可不同)。

    如图:

    console.log(
        '%c不%c见%c行%c者', 
        'font-size: 20px;margin-right: 5px', 
        'border: 1px solid #000;padding: 4px;', 
        'font-size: 24px;background: #000;color: #fff;height: 40px;', 
        'border: 1px solid #F4605F;padding: 10px;border-radius: 50%;color: #F4605F;'
    )
    

      

  • 相关阅读:
    鼠标移动,背景变色
    datatable 删除行
    GridView新增一行,更新所有行實現
    让层垂直居中于浏览器窗口
    extjs学习笔记(转)
    Extjs中的panel
    JDK和JRE的区别(转)
    EXTJS中form添加按钮触发事件
    web.xml详解
    Oracle数据库中的诊断文件(转)
  • 原文地址:https://www.cnblogs.com/guxingzhe/p/15074278.html
Copyright © 2011-2022 走看看