平等比较分配

时间:2018-01-05 07:20:20

标签: javascript

我正在尝试理解这行代码的工作原理。显然,如果isReady的值为true,则LAUNCH将返回'ready',如果不是false,则const LAUNCH = 'ready' const isReady = LAUNCH === 'ready' 将返回function category_single_product(){ $product_cats = wp_get_post_terms( get_the_ID(), 'product_cat' ); if ( $product_cats && ! is_wp_error ( $product_cats ) ){ $single_cat = array_shift( $product_cats ); ?> <h2 itemprop="name" class="product_category_title"><span><?php echo $single_cat->name; ?></span></h2> <?php } } add_action( 'woocommerce_before_shop_loop_item_title', 'category_single_product', 25 ); 。这里发生了什么?

EXEC sp_attach_db @dbname = N'sample2', 
    @filename1 = 
N'C:\NewDataFolder\TestDB.mdf', 
    @filename2 = 
N'C:\NewDataFolder\TestDB_log.ldf';

2 个答案:

答案 0 :(得分:3)

  

这里发生了什么?

首先,它正在评估正确的表达式 LAUNCH === 'ready',即true

然后,只需将此值分配给isReady变量。 isReady变量每次都会保留一个boolean值。

答案 1 :(得分:2)

要添加正确答案,评估顺序会使世界变得与众不同。

以下代码片段旨在帮助您更好地理解JS中的事情评估方式:

var obj = {
    true: "stuff"
}

var stuff = function () {
    return function () { 
        return 2+2
    }
}

window[obj["hi".length == 2]]()() == 4 // this weird statement returns true

这里发生的是评估顺序:

  1. "hi".length评估为2
  2. 2 == 2评估为true
  3. obj[true],在true被强制转换为字符串后,评估为"stuff"
  4. window["stuff"]被评估为现有函数
  5. 调用该函数会返回另一个函数
  6. 调用此其他函数执行2+2并返回4
  7. 最后,4 == 4评估为true