{{ title }}
+欢迎光临
+-
+
- {{ item }} +
console.log("1")
+console.log("2") // 等上面执行完
+console.log("3")
+// 输出:1, 2, 3
+ console.log("1")
+setTimeout(() => console.log("2"), 1000)
+console.log("3")
+// 输出:1, 3, 2
+ 欢迎光临
++document.querySelector('h1').textContent = '{{ title }}'+document.querySelector('p').style.color = '{{ paragraphColor }}'+点击上方按钮查看对应代码
return price * discount
+ return price * discount
+ price * discount
+ +function calculatePrice(price, discount) { + return price * discount +}+const calculatePrice = function(price, discount) { + return price * discount +}+const calculatePrice = (price, discount) => { + return price * discount +} + +// 或者更简洁: +const calculatePrice = (price, discount) => price * discount
执行顺序:{{ outputLog.map(l => l.output).join(', ') || '还未开始' }}
+代码书写顺序:1, 2, 3, 4, 5
+代码从上到下写的,但执行顺序不一定从上到下——因为异步操作会被"推迟"到当前代码执行完之后。
+// 基本类型
+let a = {{ basicA }}
+{{ basicB !== null ? `let b = ${basicB}` : '' }}
+{{ basicB !== null ? `b = ${basicB}` : '' }}
+console.log(a) // {{ basicA }}
+
+// 引用类型
+let obj1 = { name: "{{ obj1Data.name }}", age: {{ obj1Data.age }} }
+{{ obj2Exists ? 'let obj2 = obj1 // 指向同一份数据' : '' }}
+{{ obj2Exists ? `obj2.age = ${obj1Data.age}` : '' }}
+console.log(obj1.age) // {{ obj1Data.age }}
+
+ const appName = "Todo" // 全局作用域
+
+function greet() {
+ const message = "你好" // 函数作用域
+
+ if (true) {
+ const greeting = message + appName // 块级作用域 ✅ 能看到外层的
+ console.log(greeting)
+ }
+
+ console.log(greeting) // ❌ 报错!外层看不到内层
+}
+ const name = "张三"
+let age = 25
+const isStudent = true
+
+{{ executeCode.join('\n') }}
+ 段落
+