Javascript 是个好语言 (滑稽 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
qdwang
V2EX    Javascript

Javascript 是个好语言 (滑稽

  •  
  •   qdwang 2017-05-23 13:21:18 +08:00 10556 次点击
    这是一个创建于 3114 天前的主题,其中的信息可能已经有所发展或是发生改变。
    输入 [false, Boolean(false), [], [[]], "", String(""), 0, Number(0), "0", String("0"), [0]].map(x => null >= x && null <= x && null !== x) 输出 [true, true, true, true, true, true, true, true, true, true, true] 

    一个会在这么多情况下出现逻辑悖论的语言,是个好语言~

    所以再怎么发展 ES6, ES2015, ES2017... 都是徒劳的...

    只能希望 wasm 快点推进,革了 JS 的命...

    109 条回复    2017-06-01 11:01:47 +08:00
    1  2  
    oxyFired
        1
    oxyFired  
       2017-05-23 13:25:11 +08:00 via Android   2
    sx,你不知道 js 里<=和>=的原理就在这里乱喷
    hudotio
        2
    hudotio  
       2017-05-23 13:26:00 +08:00
    固然有槽点,但是 JS 也不是在努力变好么。。。
    xilixjd
        3
    xilixjd  
       2017-05-23 13:31:34 +08:00
    js 的坏处就在于这些语言的缺陷增加了学习成本
    jtsai
        4
    jtsai  
       2017-05-23 13:31:47 +08:00   2
    我抽过烟、打过架、堕过胎,但我觉得我还是一个好女孩
    fds
        5
    fds  
       2017-05-23 13:32:50 +08:00
    本来定义就不是有序的呀,谈不上悖论
    Presbyter
        6
    Presbyter  
       2017-05-23 13:35:00 +08:00
    楼主需要理解一下 Boolean
    http://www.w3school.com.cn/js/js_obj_boolean.asp
    Mitt
        7
    Mitt  
       2017-05-23 13:38:48 +08:00
    这是每个语言间的定义问题,想知道为什么会发生这种事情就要去看原理了,js 确实有些时候蛋疼,不过我感觉 js 是所有语言中最神奇的
    moxhuis
        8
    moxhuis  
       2017-05-23 13:39:30 +08:00
    6 年前端 XD
    momocraft
        9
    momocraft  
       2017-05-23 13:42:42 +08:00
    一个通用语言中的所有值不太可能构成偏序,拿这个黑有点牵强了。
    otakustay
        10
    otakustay  
       2017-05-23 13:57:47 +08:00   3
    都 2017 年了,你的眼里还是没有类型这个东西,还是拿着完全不同类型的东西去做不应该做的运算
    是的 js 有历史包袱所以有一些边界情况下会有问题,但是 2017 年了同学,2017 年的软件工程里你去踩这些边界条件还能说出来当炫耀吗?
    yoa1q7y
        12
    yoa1q7y  
       2017-05-23 14:09:17 +08:00
    这怎么算作是悖论,你故意这么写,结果都是符合当初的语言设计标准的
    其他语言不也一样么
    popu111
        13
    popu111  
       2017-05-23 14:14:03 +08:00 via Android
    第一二个是 true ??? excuse me ?
    mogita
        14
    mogita  
       2017-05-23 14:22:20 +08:00 via iPhone
    我学习并用 JS 的种种「不对」拿薪水,你花掉时间研究它又是来做什么呢?
    plqws
        15
    plqws  
       2017-05-23 14:23:47 +08:00 via iPhone
    这么说的话,看来世界上所有脚本语言都没有存在的意义了
    buckyRRRR
        16
    buckyRRRR  
       2017-05-23 14:25:42 +08:00   1
    缺陷被放大也都是被面试题害的,正常工作里这些东西会给你带来麻烦,知道问题规避不可以吗
    demo
        17
    demo  
       2017-05-23 14:50:14 +08:00
    楼主不知道原因吗?非严格相等比较的时候会进行类型转换,比如:

    [false, Boolean(false), [], [[]], "", String(""), 0, Number(0), "0", String("0"), [0]].map(x => Number(x))
    // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

    Number(null)
    // 0

    这样 “ null >= x && null <= x ” 就是 “ 0 >= 0 && 0 <= 0 ”,而 null 和 0 是 2 个不同的类型,所有不全等。

    楼主可以看看: https://developer.mozilla.org/zh-CN/docs/Web/Javascript/Equality_comparisons_and_sameness
    SakuraKuma
        18
    SakuraKuma  
       2017-05-23 14:55:45 +08:00
    感觉是被面试题气疯了的。(
    gongbaodd
        19
    gongbaodd  
       2017-05-23 15:00:51 +08:00
    泥萌不要这么说 jj,泥萌知道 jj 有多努力么
    gouflv
        20
    gouflv  
       2017-05-23 15:27:34 +08:00
    5 年前端 233, 有这时间学什么不好
    Exin
        21
    Exin  
       2017-05-23 15:32:16 +08:00
    噗嗤
    exoticknight
        22
    exoticknight  
       2017-05-23 15:35:36 +08:00
    @gouflv 噗嗤
    Phariel
        23
    Phariel  
       2017-05-23 15:49:09 +08:00 via Android
    自认为比制定规则者聪明系列
    rozbo
        24
    rozbo  
       2017-05-23 15:50:23 +08:00
    我是个好女孩,你们应该珍惜。
    qdwang
        25
    qdwang  
    OP
       2017-05-23 15:59:09 +08:00
    @xilixjd 不仅仅是增加了学习成本,更重要的是它允许这样做。
    qdwang
        26
    qdwang  
    OP
       2017-05-23 15:59:32 +08:00
    @jtsai
    qdwang
        27
    qdwang  
    OP
       2017-05-23 16:00:34 +08:00
    @rozbo 大家都很珍惜,楼上那么多喷我的,都热烈的爱着这个女孩呢
    Artists
        28
    Artists  
       2017-05-23 16:01:36 +08:00
    似乎自然语言才能勉强算是个好语言?
    royzxq
        29
    royzxq  
       2017-05-23 16:05:18 +08:00
    连喷点都找不到么, 我帮你找一个好吧 2.1 / 0.3
    Arrowing
        30
    Arrowing  
       2017-05-23 16:05:28 +08:00
    我觉得没什么好讨论的,喜欢就多用点,不喜欢就少用点
    但是,你能不用吗?
    qdwang
        31
    qdwang  
    OP
       2017-05-23 16:07:34 +08:00
    @Arrowing 等 wasm 支持 DOM, Web API 就可以不用了
    polariszc
        32
    polariszc  
       2017-05-23 16:11:37 +08:00   2
    @royzxq 你才是找不到喷点吧。。这是 IEEE 的浮点数规范导致的精度问题,哪个语言都有这个问题。
    royzxq
        33
    royzxq  
       2017-05-23 16:12:33 +08:00   1
    ```
    <?php
    echo null >= false && null <= false && null !== false;
    ```

    try it
    royzxq
        34
    royzxq  
       2017-05-23 16:14:12 +08:00
    @polariszc 然而这个问题在实际环境中会带来困扰, 题主的代码不会。 这才是关键
    jtsai
        35
    jtsai  
       2017-05-23 16:31:39 +08:00
    题主别噗,我挺喜欢 js 的,写起来挺嗨的
    solee
        36
    solee  
       2017-05-23 16:41:47 +08:00
    我就呵呵一下
    tyfulcrum
        37
    tyfulcrum  
       2017-05-23 16:55:52 +08:00   17
    YvesX
        38
    YvesX  
       2017-05-23 16:59:48 +08:00
    @tyfulcrum 笑出声
    zoffy
        39
    zoffy  
       2017-05-23 17:17:28 +08:00
    js 的 literal 表达式还是 hin 方便的
    prccn
        40
    prccn  
       2017-05-23 17:20:14 +08:00   4
    1. 希望看完 ES6 ES2016 和 ES2017 的草案再说话;
    2. 不管你是使用什么语言的开发者,这种妄言让你显得都很 low ;
    3. 看到大家都在给你普及 js 基础就放心了;
    4. 忠告:以后发这种帖记得贴上 github 账号
    enenaaa
        41
    enenaaa  
       2017-05-23 17:33:09 +08:00
    谁来告诉我, 为啥有 undefined 还要 null, 有了 null 还要 undefined。
    iugo
        42
    iugo  
       2017-05-23 17:42:01 +08:00
    说的别的:

    我记得之前看 "漫画家" 的文章说 WebAssembly 是为了解决性能问题, 不是为了革 JS 的命.
    qdwang
        43
    qdwang  
    OP
       2017-05-23 17:56:41 +08:00
    @iugo

    当 WebAssembly 可以解决所有问题的时候,JS 就会变成浏览器二等公民了,慢慢就可以把它淘汰了。
    iugo
        44
    iugo  
       2017-05-23 17:59:19 +08:00
    @qdwang 这目标挺远的, 至少比 web components 远.
    qdwang
        45
    qdwang  
    OP
       2017-05-23 18:00:14 +08:00
    @tyfulcrum 我就是那这里面的来举例子的
    qdwang
        46
    qdwang  
    OP
       2017-05-23 18:02:02 +08:00
    @iugo 目标虽远,但是终有达到的一天。
    qdwang
        47
    qdwang  
    OP
       2017-05-23 18:04:06 +08:00
    @Artists 当然不是,自然语言那么多歧义,是非常不好的编程语言。好的编程语言最起码需要有 well defined type system
    chairuosen
        48
    chairuosen  
       2017-05-23 18:05:27 +08:00
    @enenaaa null 是有语意的空,undefined 是没语意的
    sirm2z
        49
    sirm2z  
       2017-05-23 18:08:02 +08:00
    我觉得淘汰不可能,浏览器是个特殊的环境,它需要保持向前兼容,不可能有技术革新,就瘫痪掉一批网站。

    用户才是王道,浏览器有这么多,只要不是同时全部抛弃了旧的网站,这门语言就有生存的必要
    qdwang
        50
    qdwang  
    OP
       2017-05-23 18:09:49 +08:00
    @sirm2z 淘汰的意思是,开发使用新的语言和开发环境,不是说不兼容老的代码
    windfarer
        51
    windfarer  
       2017-05-23 18:10:03 +08:00
    sirm2z
        52
    sirm2z  
       2017-05-23 18:24:27 +08:00
    @qdwang #50 其实根据现在开发人员的技术水平,我觉的重新整出一套新的语言,并且优于 js 是很容易的

    但是比较一下推广成本,开发人员的接受率,大厂的使用率,这样看来基本上是一个出力不讨好的事情

    只能说淘汰 js 很难,它的势头很猛,这是不能否认的,亲爹干爹也多,大家都乐于去在它基础上完善(填坑)

    我想是有一定道理的,浏览器( js 的运行环境)毕竟有多家,他们本身就在博弈

    我觉得要他们再兼容新的语言的运行环境,不是易事
    Clarencep
        53
    Clarencep  
       2017-05-23 18:37:56 +08:00
    所以说坐等 webassembly 普及,然后各种语言都可以编译成 webassembly 跑在浏览器里面。。。
    qdwang
        54
    qdwang  
    OP
       2017-05-23 18:45:07 +08:00
    @sirm2z

    我觉得不需要造一个新的语言,基于现有高质量的好的语言编译到 wasm 就可以了。
    推广肯定是该这些社区自行推广的,成本不高。

    淘汰 js,要从下一代程序员开始。就像现在入门的人,可以直接用 typescript 一样。再下一代的前端程序员,可以直接用其他更好的语言来开发网页程序。
    qdwang
        55
    qdwang  
    OP
       2017-05-23 18:45:33 +08:00
    @Clarencep 没错~
    lxy
        56
    lxy  
       2017-05-23 18:59:14 +08:00
    弱类型以及隐式转换,js 里很多这种反直觉的东西。
    很多人眼里,可解释 == 可接受,类似于 It's not a bug, it's a feature 的说法。
    问题的关键是用户是否需要这种 “ feature ”?
    buseni
        57
    buseni  
       2017-05-23 19:13:35 +08:00
    JS 真是第一大语言
    sirm2z
        58
    sirm2z  
       2017-05-23 19:29:06 +08:00
    @qdwang 我查了下,目前只有一种方式能调用 wasm 里提供的接口,就是用 Javascript !

    所以我觉得 WebAssembly 更适合用于写模块,承接各种复杂的计算

    如图像处理、3D 运算、语音识别、视音频编码解码这种工作,主体程序还是要用 Javascript 来写的
    fzhw88
        59
    fzhw88  
       2017-05-23 19:32:45 +08:00
    这些都是语言的规范里面明确写着的,强制类型转化的规则……你那每一项转成数字都是 0,这有什么好喷的,每种语言都会有它自己的规范。
    fzhw88
        60
    fzhw88  
       2017-05-23 19:34:15 +08:00
    [[0]],还是 0
    kimown
        61
    kimown  
       2017-05-23 19:37:13 +08:00 via Android   2
    这东西没用的,如果项目里面有人写这样的代码,肯定拉他过去批一顿,写代码是要抱有一种用最简单,别人一看就懂的思路去写,写复杂的代码太简单了,但是要写出别人一看就懂的代码,那就是改改改,重构重构再重构
    Jeter
        62
    Jeter  
       2017-05-23 19:45:02 +08:00
    @qdwang 君不见 jvm 语言何其多,Java 语法有多嗦,然后 Java 已死???
    visonme
        63
    visonme  
       2017-05-23 19:49:59 +08:00
    如果觉得 js 不好可以选择 ts,作为 MS 深度用户,我也是很提倡永 TS 的,但是我大多数的工作还是用 js ( nodejs )完成了。

    对 WbAssembly 接触不深,不敢说太多,但在有限的接触中,我对 WebAssembly 的理解是,强壮 JS 而不是为了革 js 的命,不知道楼主是否认同我这个观点?

    所以说让 wasm 革命 js 是不是有点太直觉化了。
    maomaomao001
        64
    maomaomao001  
       2017-05-23 20:09:35 +08:00 via Android
    能不能找一个,实际使用过程中的,不如别的语言的点来黑,你这样黑点都找不到乱黑,你觉得合适吗????
    Jeter
        65
    Jeter  
       2017-05-23 20:11:52 +08:00
    @yoa1q7y 没错,楼主应该去学学 C/C++(都是强类型语言),然后玩一玩这两门语言的类型提升或者截断转换,指针间的互相转换,直到它的 C/C++代码 core dump 到楼主吹胡子瞪眼睛之后才会想起 js 有多友好。。。
    blahgeek
        66
    blahgeek  
       2017-05-23 20:50:45 +08:00
    [0, 1, -2, -1].sort()
    Em5O7B1JGfjQnBry
        67
    Em5O7B1JGfjQnBry  
       2017-05-23 21:36:39 +08:00 via Android
    @Jeter 你看看 Javascript 是什么时候诞生的,C 又是什么年代诞生的,再去看看 BS 为什么需要 C++要兼容 c 的那些东西,以及为什么有时候这些底层的东西为什么会这样,你这样举例完全就是扯淡,还有强弱类型这个概念有点乱,从类型系统的角度来说,C/C++不是强类型应该比较合适
    guokeke
        68
    guokeke  
       2017-05-23 22:41:31 +08:00
    某天,v2 上又出现了 ‘ WebAssembly 是个好...云云’
    4641585
        69
    4641585  
       2017-05-23 22:49:16 +08:00
    @royzxq 我很好奇看到浮点数为什么会意识不到精度问题?大学不止一门课讲过吧,计算机入门读物里也都有吧。
    darklowly
        70
    darklowly  
       2017-05-23 23:01:51 +08:00   1
    @qdwang 在这前端火热的年代,我一直以为就我一个人讨厌 js..


    @Jeter 乱说。C,C++类型问题,可以在半小时内记住,并且很少犯错,其实规律很简单。JS 这 SB 随时要提防着,一不小心,就要上天。还有什么指针问题,野指针,内存泄漏,coredump 等,是语言层级不一样,这个不能拿来类比。人家 C,C++可以直接操作内存地址,甚至,如果内存地址是 io 地址,可以直接操作硬件,70 年代的产物,对于老手来说只能看成是汇编的语法糖,外加语法检测而已。


    @svenFeng 算上语法检测,不乱搞的情况下,基本上算是静态语言。JS 不乱搞,都害怕出错,写一行代码,要检查 3 遍。
    hxtheone
        71
    hxtheone  
       2017-05-23 23:20:44 +08:00
    @royzxq #29 浮点数精度问题, 这也能喷?
    chunqiuyiyu
        72
    chunqiuyiyu  
       2017-05-23 23:51:40 +08:00
    我越来越喜欢 Javascript 了,尤其是现在的 ES6 语法,写起来太爽了
    Jeter
        73
    Jeter  
       2017-05-23 23:58:03 +08:00
    @darklowly 好吧,我没说明白,我是想说,C/C++在使用时总是会碰到隐式转换的问题,而且因为它直接操作内存,很多问题 core dump 解决后还需要重新编译构建,对于前端这种需要快速开发的场景很不友好。。而楼主他试图通过“ well defined type system ”的语言编译成 wasm,去避免他帖子里提到的 JS 语言设计问题(然而这些值转换都已经成为标准了),而 C/C++只是我举的一个 [不适合前端] 这个开发场景的例子,来反驳楼主的上述观点。。。确实,JS 的值转换相对很多语言相当 SB (但是已经写入标准了),所以,如果没有能力去改变 JS 这种窘状的话,就去把标准看清楚再来讨论。。。
    WENLIANG29
        74
    WENLIANG29  
       2017-05-24 06:00:07 +08:00
    老铁,发这种引战帖没什么意思。JS 固然有很多历史上语言设计的弊端,它也有它的优势,况且语言设计也在慢慢变好。PHP 不也总有人骂么,PHP7 和 PHP-JIT 带来的提升也很大。你总揪着历史缺点不放没意思,而且还是这种老掉牙的喷法。有空不如多写几行代码 -。- (建议你去看一下 Mozilla 核心工程师 Lin Clark 的这篇文章再来说什么 WASM 淘汰 JS 的事 https://hacks.mozilla.org/2017/02/a-cartoon-intro-to-webassembly/) DOM、BOM、Accessibility 等等都是问题。
    Ahri
        75
    Ahri  
       2017-05-24 07:38:45 +08:00
    Java 程序员都是好程序员(滑稽
    qdwang
        76
    qdwang  
    OP
       2017-05-24 07:44:59 +08:00 via iPhone
    @sirm2z 嗯 目前是这样 以后怎么样说不准呀
    Cbdy
        77
    Cbdy  
       2017-05-24 08:32:34 +08:00 via Android
    @Jeter c/c++这两个都是弱类型语言。。。
    sagaxu
        78
    sagaxu  
       2017-05-24 08:53:25 +08:00
    语法丑陋没关系,反正不写原生 js,我都是用其它语言写了编译成 js 用
    enenaaa
        79
    enenaaa  
       2017-05-24 09:16:29 +08:00
    @chairuosen 空不就是未定义么。java 也有 null, 其他语言还有 nil, None, nullptr,叫啥都行。 但谁特么搞两个,神经病啊。
    chenyu0532
        80
    chenyu0532  
       2017-05-24 09:16:56 +08:00
    笑看楼主被喷、、
    caniuse
        81
    caniuse  
       2017-05-24 09:17:26 +08:00
    Javascript 是最好的语言
    jlyybz
        82
    jlyybz  
       2017-05-24 09:19:28 +08:00
    我觉得 js 真不错 ~
    chairuosen
        83
    chairuosen  
       2017-05-24 09:30:51 +08:00
    @enenaaa 明确的告诉你没有,和没告诉你有没有,一样么?
    awesomes
        84
    awesomes  
       2017-05-24 09:31:26 +08:00
    人家 JS 之父都说了,wasm 是让 JS 更强,不是取代 JS,你想太多了
    Cbdy
        85
    Cbdy  
       2017-05-24 09:46:15 +08:00
    @sagaxu 但是其他语言怎么操作 dom 么?
    lijsh
        86
    lijsh  
       2017-05-24 09:49:10 +08:00
    2017 年了还有人在搞这种无谓的语言鄙视,用的还是平时很难遇到的 edge case,楼主有空干点啥不好。
    qdwang
        87
    qdwang  
    OP
       2017-05-24 09:49:47 +08:00
    @Cbdy 类似 BuckleScript 可以在编译的时候增加一些语言特性,来编译成操作 dom 的 js 指令
    solidsnake
        88
    solidsnake  
       2017-05-24 09:49:54 +08:00 via iPhone
    你也挺滑稽的
    sagaxu
        89
    sagaxu  
       2017-05-24 09:51:40 +08:00
    @Cbdy 直接操作啊,原生 js 能调用的库和方法,其他语言都能调
    ajan
        90
    ajan  
       2017-05-24 09:55:37 +08:00
    楼主自己来造一种语言吧! 我看好你
    gjerryfe
        91
    gjerryfe  
       2017-05-24 10:01:15 +08:00 via iPhone   1
    楼主提出一个问题,楼上各位开始各种人身攻击,可见各位的自尊心 成熟感已经负值
    issues
        92
    issues  
       2017-05-24 10:01:51 +08:00
    js 的框架能影响语言本身<逃
    MushishiXian
        93
    MushishiXian  
       2017-05-24 10:06:32 +08:00
    还在鄙视语言的人到底有多 low......又不是没有往好的方向发展,与其去鄙视,还不如先提高自己水平吧
    yanzixuan
        94
    yanzixuan  
       2017-05-24 10:07:41 +08:00
    在 js 基础上搞得 es 虽然是补漏洞,但是新人上手就有点郁闷了,不能知其然不知其所以然。。
    wly19960911
        95
    wly19960911  
       2017-05-24 10:23:10 +08:00 via Android
    就这就叫缺点?

    +[]

    看看结果是什么。说实话揪着语言这些问题不放不太好。平常没人用这种写法,感觉就是面试笔试题刁难人,有谁敢写这种估计已经被打死了
    Halomaple
        96
    Halomaple  
       2017-05-24 10:53:23 +08:00
    谁告诉你 Boolean(false) 结果是 true 了? Boolean('false') 和 Boolean(false)都分不清楚就来引战?
    Halomaple
        97
    Halomaple  
       2017-05-24 10:54:42 +08:00
    @popu111 楼主连基本的类型转换都分不清楚,也没验证就来引战了
    topgrd
        98
    topgrd  
       2017-05-24 10:58:18 +08:00
    WebAssembly 是不会革了 JS 的命的,之后的发展更可能是两者各用于擅长的地方,在 web 中两者同时存在,虽然 Javascript 槽点很多,但不是正在向好的方向发展么?
    Halomaple
        99
    Halomaple  
       2017-05-24 11:01:13 +08:00
    learnshare
        100
    learnshare  
       2017-05-24 11:08:05 +08:00
    我现在更推荐直接上 TypeScript,忘掉 Javascript
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2919 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 13:53 PVG 21:53 LAX 05:53 JFK 08:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86