• Perl与JS的比较(基本数据类型)


    一、数字

    和JS一样,用双精度浮点数(double-precision floating-point)表示。不同于JS的如下

    1,整数直接量中可以插入下划线,看起来比较清楚,如 11222333 等同于 11_222_333

    if (11222333 == 11_222_333) {
    	print 'true';
    } else {
    	print 'false';
    }
    

    运行后将打印出true。

    2,Perl除了支持十进制、八进制、十六进制还支持二进制,JS不支持二进制数字表示法。Perl中二进制以0b开头,如0b1110等价于十进制的14。

    print 0b1110;
    

    运行后将打印出14。

    3,Perl支持双星运算符表示乘幂(exponentiation),如 2**3 == 8,JS不支持。

    二、字符串

    1,字符串用单引号,双引号表示。双引号里斜杠可转义。双引号里方式与JS方式很不同,可以插入变量,插入列表,数组。

    2,双引号里转义符多了如下

    • \l  将下个字母转成小写
    • \L 将它后面所有的字母转成小写
    • \u 将下个字母转成大写
    • \U 将它后面所有的字母转成大写
    • \O 把它和\E之间的字符加反斜线转义
    • \E 结束\L、\U和\0开始的作用范围

    3,字符串连接使用点操作符,如 'Hello, '.'world!';JS使用加号,如'Hello '+'world!'。

    4,具有字符串重复操作符x(小写x),JS没有。如:'ab'x3 == 'ababab'。

    三、没有Boolean类型,JS有。Perl用一些简单的规则判断

    1. 如果是数字,0为假,其它为真
    2. 如果是字符串,空字符串为假,其它为真。
    3. 既不是数字又不是字符串,就把它转成数字或字符串再行判断

    第二点需要注意,""在Perl和JS里都为假;但"0"在Perl为真,JS里为假。

    四、没赋值的变量值是undef, JS是undefined

    判断变量是否是undef用defined函数(Perl内置),JS没有内置函数,但可以用typeof运算符 typeof a == 'undefined' 或 a === undefined。

    五、数字比较用 ==, !=, <, >, <=, >=,字符串比较用eq, ne, le, gt, le, ge。JS不区分。

    六、Perl和JS都具有自动类型转换,比如数字与字符串,对象与基本类型。

    七、Perl具有列表直接量,JS具有数组直接量,但展现形式不同

    1,圆括号用逗号隔开,如

    (1, 2, 3, 4) # 数字列表
    ('a', 'b', 'c') # 字符串列表
    (0..9) # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,

    2,还可以使用qw简写方式,除了用圆括号Perl还允许用任意标点符号作为定界符,前后定界符也可以不同,但必须是对称。如

    qw(a b c)
    qw(hello world)
    qw/hello world/
    qw!hello world!
    qw#hello world# # 此处不是注释
    qw{hello world}
    qw[hello world]
    qw<hello world>
    

     要注意的是qw里的元素默认都是字符串,因为qw表示的其实是“quoted word”。

  • 相关阅读:
    GJM : Unity的profiler性能分析【转载】
    GJM :Unity UI 之 UGUI 开发
    GJM:笔记记录
    GJM : UGUI 缩放循环拖动展示卡牌效果
    GJM :HTC Vive VRTK.Package 踩坑之路(一)
    GJM :Mono 介绍
    GJM :Unity3D 介绍
    GJM : C# 介绍
    GJM : 通用类型系统(Common Type System CTS)
    GJM :SQL Server中常用的SQL语句
  • 原文地址:https://www.cnblogs.com/snandy/p/2750141.html
Copyright © 2020-2023  润新知