JavaScript Engine

jay li
jay liSoftware Developer at Yahoo! China
JavaScript Engine




                    2011-04-19
• 拔赤
 淘宝前端开发工程师
 http://jayli.github.com
JavaScript引擎
V8
Carakan
JaegerMonkey
Nitro
JScript
从源码到可执行代码


     解释
                编译(compiled)
(interpreted)
(function foo(){
source.js(源码)           alert(‘helloworld’);
                   })();


                                  编译
helloworld.exe         01001011101101…
  (二进制码)
                                  运行

 运行时环境           Runtime.exec(‘helloworld.exe’)




                 编译
(function foo(){
source.js(源码)         alert(‘helloworld’);
                 })();




helloworld.exe                  编译&运行
  (二进制码)


解释器执行伪代码         Runtime.exec(‘中间机器码’)


                      运行时环境

                 解释
(function foo(){
                    alert(‘helloworld’);
               })();



JavaScript引擎
                             编译&运行

               Runtime.exec(‘中间机器码’)


                运行时环境(浏览器)


               解释
JavaScript 是解释型语言
JavaScript代码执行的过程

    词法分析

           语法检查
    语法分析



     预编译
            运行时
     运行
执行”0=1=2”




在语法检查阶段报错
 这是一个语法错误
 程序没有开始运行
执行”a=b=c”




通过了语法检查
 在运行时报错
程序已经开始运行
词法分析

       语法检查
语法分析
              1,将上下文中var申明
                 的变量放入”栈”中
               并赋值为undefined
预编译
        运行时    2,读入”定义”的函数
 运行
alert(a); //会报错吗?
var a = 1;
扫描整段代码,将a放入当前上
               下文的栈中,赋值为undefined

               在栈中找到a并得到值undefined
alert(a);      弹出”undefined”
var a = 1;
               将a赋值为1




             局部变量的预编译
a();
function a(){       2,预编译读入a的定义
  alert(‘Tom’);
}
var a = function(){
  alert(‘Jim’);
                      1,变量a入栈
};
a();

          函数的预编译
a();
function a(){       执行a(),弹出Tom
  alert(‘Tom’);
}
var a = function(){
  alert(‘Jim’);       a被重新赋值
};
a();       执行a(),弹出Jim


           编译后的运行
function a(){//预编译定义,运行时略过
   alert(‘helloworld’);
}
var a = function(){//预编译声明,运行时赋值
   alert(‘helloworld’);
};
a = function(){//运行时变量赋值
  alert(‘helloworld’);
};
下面代码的运行结果?
a();
function a(){
   alert(1);
}
a();
function a(){
   alert(2);
}
a();
var a = function(){
   alert(3);
};
a();
常见问题
判断变量存在

//a未声明时报错,不推荐
alert(a === undefined);



//推荐
alert(typeof a === ‘undefined’);
函数执行前,函数内部变
        量均被声明

function(){
  alert(a); //显示undefined,不报错
  if(false){
     var a = 1; //不会执行到,亦被声明
  }
}()
Js执行和浏览器渲染
<!DOCTYPE HTML>       document
<html lang="zh">
  <head>head</head>            head
<body>
                               body
  <div id=“J”>
     <script>
                                    div#J
     $.write(‘helloworld’);
     </script>                            script

  </div>
…                  渲染出Script节点
</body>
                      浏览器暂停渲染HTML
</html>          将script交由js引擎编译执行
<!DOCTYPE HTML>       document

<html lang="zh">
  <head>head</head>            head

<body>
                               body
  <div id=“J”>
     <script>                       div#J

     $.write(‘helloworld’);
                                            script
     </script>
  </div>         Js引擎创建了
                                          textNode
                   textNode
…
</body>                Js引擎执行代码段结束
</html> 将渲染主动权交给浏览器继续渲染HTML
阻塞:
Js的执行会中断HTML的渲染
Single UI Rendering Thread
Time
                      UI Rendering Thread




        2,UI update

 DOM
1,构建出DOM
Time
                 UI Rendering Thread

RenderUI


     渲染出此时的Dom

 DOM
Time
                      UI Rendering Thread

RenderUI    exec JS

                  3,JS脚本新增了DOM节点

           DOM
Time
                     UI Rendering Thread

RenderUI   exec JS   RenderUI

                        4,UI update

           DOM
Time
                     UI Rendering Thread

RenderUI    UIJS RenderUI
           exec Update
              • Repaint4,UI update

              • Reflow
           DOM
Repaint:
 •   透明度更改
 •   文字颜色变化
 •   背景颜色变化
 •   背景图片替换
Reflow:
•   页面渲染过程中
•   Dom结构变化
•   浏览器窗口大小改变
•   布局变化
<div id=“J”>
  <script>
  $(‘J’).css(‘color’,’red’);
  </script>
</div>                 Repaint
<div id=“J”>
  <script>
  $(‘J’).append(‘<div>txt</div>’);
  </script>
</div>                 Reflow
减少Reflow/paint:性能攸关的大事!
<div id=“J”>
  <script>
  for(i=0;i<100;i++)
     $(‘J’).append(‘<div>’+i+’</div>’);
  </script>
</div>               Reflow * 100 !
Time
                       UI Rendering Thread

RenderUI   Run js for long time   RenderUI

                                     UI update
              UI 没有反应…

               DOM
<div id=“J”>
  <script>
  for(i=0,str=‘’;i<100;i++){
     str+=‘<div>’+i+’</div>’;
  }
  $(‘J’).append(str);
  </script>
</div>              Reflow * 1 !
避免阻塞:同样性能攸关的大事
 (异步执行JavaScript)
…
                         body
<div id=“J”>
  <script>
                              div#J
  setTimeout(function(){
     $.write(‘helloworld’);         script

  },100);
  </script>   Js引擎开启了定时器
</div>
<div>doc</div>
</body>
</html>
           Js引擎只启动了定时器,没有”write”操作
    浏览器可以很快获得DOM渲染权,继续渲染HTML
…
                         body
<div id=“J”>
  <script>
                                div#J
  setTimeout(function(){
     $.write(‘helloworld’);             script

  },100);
                                         div
  </script>
</div>      浏览器继续渲染html
<div>doc</div>
</body>
</html>
…
                         body
<div id=“J”>
  <script>
                              div#J
  setTimeout(function(){
     $.write(‘helloworld’);          script

  },100);
                                      div    100ms
  </script> 定时器到时,插入dom
</div>                              textNode

<div>doc</div>
</body>
</html>          从定时器开启,到write节点完成
                     中间的HTML渲染没有中断
…                       body
<div id=“J”>
  <script>                   div#J

  setTimeout(function(){
                                    script
     while(true){
       $.write(‘helloworld’);        div    100ms

     }
                                   textNode
  },100);    异步也不是万能的
                                       …
  </script>
</div>
…                         Js中低效的Dom操作
依然会阻断浏览器的渲染,让浏览器看起来像“冷冻”住
异步加载JS 减少阻塞
Js不要频繁读写Dom 减少reflow/paint
Lovely JavaScript Engine !




                   了解她
                   喜欢她
                 离不开她
ref

• http://www.slideshare.net/nzakas/high-
  performance-javascript-jquery-conference-
  sf-bay-area-2010-3843763
• http://www.slideshare.net/madrobby/extr
  eme-javascript-performance
JavaScript Engine
1 of 50

Recommended

A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ... by
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...CODE BLUE
2K views90 slides
CQRS / ES & DDD Demystified by
CQRS / ES & DDD DemystifiedCQRS / ES & DDD Demystified
CQRS / ES & DDD DemystifiedVic Metcalfe
270 views62 slides
SCons an Introduction by
SCons an IntroductionSCons an Introduction
SCons an Introductionslantsixgames
2.3K views9 slides
Android audio system(audio_hardwareinterace) by
Android audio system(audio_hardwareinterace)Android audio system(audio_hardwareinterace)
Android audio system(audio_hardwareinterace)fefe7270
4.9K views13 slides
Android audio system(audioflinger) by
Android audio system(audioflinger)Android audio system(audioflinger)
Android audio system(audioflinger)fefe7270
27.2K views25 slides
04. xss and encoding by
04.  xss and encoding04.  xss and encoding
04. xss and encodingEoin Keary
2K views76 slides

More Related Content

What's hot

쿼터니언 by
쿼터니언쿼터니언
쿼터니언현찬 양
10.2K views19 slides
Php cookies by
Php cookiesPhp cookies
Php cookiesJIGAR MAKHIJA
210 views7 slides
Reverse Engineering Malicious Javascript by
Reverse Engineering Malicious JavascriptReverse Engineering Malicious Javascript
Reverse Engineering Malicious JavascriptYusuf Motiwala
7.4K views53 slides
iOSにおける自動テストの並列化 by
iOSにおける自動テストの並列化iOSにおける自動テストの並列化
iOSにおける自動テストの並列化Toshiyuki Hirata
1.9K views34 slides
Parallel Futures of a Game Engine by
Parallel Futures of a Game EngineParallel Futures of a Game Engine
Parallel Futures of a Game EngineJohan Andersson
142.3K views54 slides
New Framework - ORM by
New Framework - ORMNew Framework - ORM
New Framework - ORMOdoo
1.2K views26 slides

What's hot(14)

쿼터니언 by 현찬 양
쿼터니언쿼터니언
쿼터니언
현찬 양10.2K views
Reverse Engineering Malicious Javascript by Yusuf Motiwala
Reverse Engineering Malicious JavascriptReverse Engineering Malicious Javascript
Reverse Engineering Malicious Javascript
Yusuf Motiwala7.4K views
iOSにおける自動テストの並列化 by Toshiyuki Hirata
iOSにおける自動テストの並列化iOSにおける自動テストの並列化
iOSにおける自動テストの並列化
Toshiyuki Hirata1.9K views
Parallel Futures of a Game Engine by Johan Andersson
Parallel Futures of a Game EngineParallel Futures of a Game Engine
Parallel Futures of a Game Engine
Johan Andersson142.3K views
New Framework - ORM by Odoo
New Framework - ORMNew Framework - ORM
New Framework - ORM
Odoo1.2K views
Stagefright入門 by l_b__
Stagefright入門Stagefright入門
Stagefright入門
l_b__22.2K views
Extreme HTTP Performance Tuning: 1.2M API req/s on a 4 vCPU EC2 Instance by ScyllaDB
Extreme HTTP Performance Tuning: 1.2M API req/s on a 4 vCPU EC2 InstanceExtreme HTTP Performance Tuning: 1.2M API req/s on a 4 vCPU EC2 Instance
Extreme HTTP Performance Tuning: 1.2M API req/s on a 4 vCPU EC2 Instance
ScyllaDB1.9K views
BSidesDelhi 2018: Finding Memory Bugs with the Address Sanitizer by BSides Delhi
BSidesDelhi 2018: Finding Memory Bugs with the Address SanitizerBSidesDelhi 2018: Finding Memory Bugs with the Address Sanitizer
BSidesDelhi 2018: Finding Memory Bugs with the Address Sanitizer
BSides Delhi543 views
Javascript 교육자료 pdf by Hyosang Hong
Javascript 교육자료 pdfJavascript 교육자료 pdf
Javascript 교육자료 pdf
Hyosang Hong4.7K views
一小時學不會的 Vim by Li Hsuan Hung
一小時學不會的 Vim一小時學不會的 Vim
一小時學不會的 Vim
Li Hsuan Hung134 views
Beyond xp_cmdshell: Owning the Empire through SQL Server by Scott Sutherland
Beyond xp_cmdshell: Owning the Empire through SQL ServerBeyond xp_cmdshell: Owning the Empire through SQL Server
Beyond xp_cmdshell: Owning the Empire through SQL Server
Scott Sutherland10.9K views
C++17 Key Features Summary - Ver 2 by Chris Ohk
C++17 Key Features Summary - Ver 2C++17 Key Features Summary - Ver 2
C++17 Key Features Summary - Ver 2
Chris Ohk17.6K views
Building Real Time Systems on MongoDB Using the Oplog at Stripe by MongoDB
Building Real Time Systems on MongoDB Using the Oplog at StripeBuilding Real Time Systems on MongoDB Using the Oplog at Stripe
Building Real Time Systems on MongoDB Using the Oplog at Stripe
MongoDB2.3K views

Viewers also liked

犀牛书第六版 by
犀牛书第六版犀牛书第六版
犀牛书第六版jay li
2.6K views15 slides
Jswebapps by
JswebappsJswebapps
Jswebappsjay li
1.4K views18 slides
卫银霞 -统计数字会撒谎 by
卫银霞 -统计数字会撒谎卫银霞 -统计数字会撒谎
卫银霞 -统计数字会撒谎jay li
1.5K views26 slides
F2e security by
F2e securityF2e security
F2e securityjay li
1.4K views60 slides
中国元素在设计中的应用 -如瑟 by
中国元素在设计中的应用 -如瑟中国元素在设计中的应用 -如瑟
中国元素在设计中的应用 -如瑟jay li
1.6K views43 slides
深入剖析浏览器 by
深入剖析浏览器深入剖析浏览器
深入剖析浏览器jay li
11.2K views131 slides

Viewers also liked(12)

犀牛书第六版 by jay li
犀牛书第六版犀牛书第六版
犀牛书第六版
jay li2.6K views
Jswebapps by jay li
JswebappsJswebapps
Jswebapps
jay li1.4K views
卫银霞 -统计数字会撒谎 by jay li
卫银霞 -统计数字会撒谎卫银霞 -统计数字会撒谎
卫银霞 -统计数字会撒谎
jay li1.5K views
F2e security by jay li
F2e securityF2e security
F2e security
jay li1.4K views
中国元素在设计中的应用 -如瑟 by jay li
中国元素在设计中的应用 -如瑟中国元素在设计中的应用 -如瑟
中国元素在设计中的应用 -如瑟
jay li1.6K views
深入剖析浏览器 by jay li
深入剖析浏览器深入剖析浏览器
深入剖析浏览器
jay li11.2K views
潜力无限的编程语言Javascript by jay li
潜力无限的编程语言Javascript潜力无限的编程语言Javascript
潜力无限的编程语言Javascript
jay li9.4K views
Responsive Web UI Design by jay li
Responsive Web UI DesignResponsive Web UI Design
Responsive Web UI Design
jay li4.4K views
淘宝移动端Web开发最佳实践 by jay li
淘宝移动端Web开发最佳实践淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践
jay li9K views
淘宝前端技术巡礼 by jay li
淘宝前端技术巡礼淘宝前端技术巡礼
淘宝前端技术巡礼
jay li17.1K views
编码大全 拔赤 by jay li
编码大全 拔赤编码大全 拔赤
编码大全 拔赤
jay li2.2K views
HTML/CSS/JS基础 by jay li
HTML/CSS/JS基础HTML/CSS/JS基础
HTML/CSS/JS基础
jay li15.7K views

Similar to JavaScript Engine

Script with engine by
Script with engineScript with engine
Script with engineWebrebuild
957 views39 slides
Web设计 3 java_script初探(程序员与设计师的双重眼光) by
Web设计 3 java_script初探(程序员与设计师的双重眼光)Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)ziggear
321 views32 slides
Javascript autoload by
Javascript autoloadJavascript autoload
Javascript autoloadjay li
2.2K views62 slides
面向开发的前端性能优化 by
面向开发的前端性能优化面向开发的前端性能优化
面向开发的前端性能优化li qiang
627 views83 slides
Node.js 入門 - 前端工程開發實務訓練 by
Node.js 入門 - 前端工程開發實務訓練Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Joseph Chiang
6K views30 slides
第三方内容开发最佳实践 by
第三方内容开发最佳实践第三方内容开发最佳实践
第三方内容开发最佳实践taobao.com
2.2K views61 slides

Similar to JavaScript Engine(20)

Script with engine by Webrebuild
Script with engineScript with engine
Script with engine
Webrebuild957 views
Web设计 3 java_script初探(程序员与设计师的双重眼光) by ziggear
Web设计 3 java_script初探(程序员与设计师的双重眼光)Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)
ziggear321 views
Javascript autoload by jay li
Javascript autoloadJavascript autoload
Javascript autoload
jay li2.2K views
面向开发的前端性能优化 by li qiang
面向开发的前端性能优化面向开发的前端性能优化
面向开发的前端性能优化
li qiang627 views
Node.js 入門 - 前端工程開發實務訓練 by Joseph Chiang
Node.js 入門 - 前端工程開發實務訓練Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練
Joseph Chiang6K views
第三方内容开发最佳实践 by taobao.com
第三方内容开发最佳实践第三方内容开发最佳实践
第三方内容开发最佳实践
taobao.com2.2K views
张所勇:前端开发工具推荐 by zhangsuoyong
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
zhangsuoyong1.8K views
Kind editor设计思路 by taobao.com
Kind editor设计思路Kind editor设计思路
Kind editor设计思路
taobao.com1.7K views
Browser Object Model by jay li
Browser Object ModelBrowser Object Model
Browser Object Model
jay li3.2K views
浅析浏览器解析和渲染 by Ailsa126
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染
Ailsa1262.4K views
中心教员J2 Ee面试题 by yiditushe
中心教员J2 Ee面试题中心教员J2 Ee面试题
中心教员J2 Ee面试题
yiditushe157 views
Kindeditor 设计思路 by luolonghao
Kindeditor 设计思路Kindeditor 设计思路
Kindeditor 设计思路
luolonghao669 views
恶意网页分析实战 by Huang Toby
恶意网页分析实战恶意网页分析实战
恶意网页分析实战
Huang Toby1.9K views
Android 智慧型手機程式設計 by Kyle Lin
Android 智慧型手機程式設計Android 智慧型手機程式設計
Android 智慧型手機程式設計
Kyle Lin874 views
Inside the-browser by jy03845581
Inside the-browserInside the-browser
Inside the-browser
jy03845581727 views
Inside the-browser by jy03845581
Inside the-browserInside the-browser
Inside the-browser
jy03845581376 views
Inside the browser by otakustay
Inside the browserInside the browser
Inside the browser
otakustay683 views
Node.js开发体验 by QLeelulu
Node.js开发体验Node.js开发体验
Node.js开发体验
QLeelulu1.9K views
Class 20170126 by Ivan Wei
Class 20170126Class 20170126
Class 20170126
Ivan Wei191 views
Kindeditor设计思路v2 by luolonghao
Kindeditor设计思路v2Kindeditor设计思路v2
Kindeditor设计思路v2
luolonghao618 views

More from jay li

小控件、大学问 by
小控件、大学问小控件、大学问
小控件、大学问jay li
1.4K views29 slides
Mobile UI design and Developer by
Mobile UI design and DeveloperMobile UI design and Developer
Mobile UI design and Developerjay li
2.2K views78 slides
Html5form by
Html5formHtml5form
Html5formjay li
1K views25 slides
Slide by
SlideSlide
Slidejay li
1.1K views23 slides
Js doc toolkit by
Js doc toolkitJs doc toolkit
Js doc toolkitjay li
1.1K views29 slides
新业务新员工培训 Banner设计 by
新业务新员工培训   Banner设计新业务新员工培训   Banner设计
新业务新员工培训 Banner设计jay li
1.8K views19 slides

More from jay li(16)

小控件、大学问 by jay li
小控件、大学问小控件、大学问
小控件、大学问
jay li1.4K views
Mobile UI design and Developer by jay li
Mobile UI design and DeveloperMobile UI design and Developer
Mobile UI design and Developer
jay li2.2K views
Html5form by jay li
Html5formHtml5form
Html5form
jay li1K views
Slide by jay li
SlideSlide
Slide
jay li1.1K views
Js doc toolkit by jay li
Js doc toolkitJs doc toolkit
Js doc toolkit
jay li1.1K views
新业务新员工培训 Banner设计 by jay li
新业务新员工培训   Banner设计新业务新员工培训   Banner设计
新业务新员工培训 Banner设计
jay li1.8K views
夏之 专题设计 by jay li
夏之 专题设计夏之 专题设计
夏之 专题设计
jay li809 views
赤骥 用户研究入门 by jay li
赤骥 用户研究入门赤骥 用户研究入门
赤骥 用户研究入门
jay li1.7K views
Ecmascript by jay li
EcmascriptEcmascript
Ecmascript
jay li7.5K views
2011彩票首页开发实践 by jay li
2011彩票首页开发实践2011彩票首页开发实践
2011彩票首页开发实践
jay li1K views
Web设计的画纸深入了解我们的显示器 by jay li
Web设计的画纸深入了解我们的显示器Web设计的画纸深入了解我们的显示器
Web设计的画纸深入了解我们的显示器
jay li859 views
潜意识设计 by jay li
潜意识设计潜意识设计
潜意识设计
jay li1.4K views
Html&css培训 舒克 by jay li
Html&css培训 舒克Html&css培训 舒克
Html&css培训 舒克
jay li1.3K views
Html5@taobao by jay li
Html5@taobaoHtml5@taobao
Html5@taobao
jay li1.8K views
前端调试工具,编码相关,性能相关 by jay li
前端调试工具,编码相关,性能相关前端调试工具,编码相关,性能相关
前端调试工具,编码相关,性能相关
jay li1.4K views
box model by jay li
box modelbox model
box model
jay li1.1K views

Recently uploaded

Hacking Facebook for fun and profit by Pranav Hivarekar by
Hacking Facebook for fun and profit by Pranav HivarekarHacking Facebook for fun and profit by Pranav Hivarekar
Hacking Facebook for fun and profit by Pranav HivarekarPranav Hivarekar
6 views69 slides
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式 by
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式Shengyou Fan
150 views54 slides
居家雲端照護系統_艾鍗學院-AIoT智能行動服務物聯網班 by
居家雲端照護系統_艾鍗學院-AIoT智能行動服務物聯網班居家雲端照護系統_艾鍗學院-AIoT智能行動服務物聯網班
居家雲端照護系統_艾鍗學院-AIoT智能行動服務物聯網班IttrainingIttraining
43 views32 slides
商品辨識定位系統_艾鍗學院-AIoT智能行動服務物聯網班 by
商品辨識定位系統_艾鍗學院-AIoT智能行動服務物聯網班商品辨識定位系統_艾鍗學院-AIoT智能行動服務物聯網班
商品辨識定位系統_艾鍗學院-AIoT智能行動服務物聯網班IttrainingIttraining
40 views37 slides
AI Technology & Development of Civilization by
AI Technology & Development of CivilizationAI Technology & Development of Civilization
AI Technology & Development of Civilizationunclebrown017
41 views74 slides
AIoT 智能商店_艾鍗學院-AIoT智能行動服務物聯網班 by
AIoT 智能商店_艾鍗學院-AIoT智能行動服務物聯網班AIoT 智能商店_艾鍗學院-AIoT智能行動服務物聯網班
AIoT 智能商店_艾鍗學院-AIoT智能行動服務物聯網班IttrainingIttraining
43 views25 slides

Recently uploaded(6)

Hacking Facebook for fun and profit by Pranav Hivarekar by Pranav Hivarekar
Hacking Facebook for fun and profit by Pranav HivarekarHacking Facebook for fun and profit by Pranav Hivarekar
Hacking Facebook for fun and profit by Pranav Hivarekar
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式 by Shengyou Fan
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
Shengyou Fan150 views
居家雲端照護系統_艾鍗學院-AIoT智能行動服務物聯網班 by IttrainingIttraining
居家雲端照護系統_艾鍗學院-AIoT智能行動服務物聯網班居家雲端照護系統_艾鍗學院-AIoT智能行動服務物聯網班
居家雲端照護系統_艾鍗學院-AIoT智能行動服務物聯網班
商品辨識定位系統_艾鍗學院-AIoT智能行動服務物聯網班 by IttrainingIttraining
商品辨識定位系統_艾鍗學院-AIoT智能行動服務物聯網班商品辨識定位系統_艾鍗學院-AIoT智能行動服務物聯網班
商品辨識定位系統_艾鍗學院-AIoT智能行動服務物聯網班
AI Technology & Development of Civilization by unclebrown017
AI Technology & Development of CivilizationAI Technology & Development of Civilization
AI Technology & Development of Civilization
unclebrown01741 views
AIoT 智能商店_艾鍗學院-AIoT智能行動服務物聯網班 by IttrainingIttraining
AIoT 智能商店_艾鍗學院-AIoT智能行動服務物聯網班AIoT 智能商店_艾鍗學院-AIoT智能行動服務物聯網班
AIoT 智能商店_艾鍗學院-AIoT智能行動服務物聯網班

JavaScript Engine