قدرت فوق‌العاده Console جاوا اسکریپت

آفلاین
user-avatar
جواد غلامی
20 خرداد 1400, خواندن در 5 دقیقه

احتمالا شما به عنوان یک توسعه‌ دهنده جاوا اسکریپت ، ممکن است از آبجکت console به تعداد پلک زدن چشم‌تان از آن استفاده کرده باشید. این اغراق بزرگی است‌، اما من فقط می‌خواستم به این نکته اشاره کنم که چقدر آبجکت  console برای توسعه دهنده جاوا اسکریپت مهم است و از همه مهمتر روش log().

آبجکت  Console

آبجکت console در آبجکت window جاوا اسکریپت در مرورگر وجود دارد و به ما امکان دسترسی به console اشکال زدایی(دیباگ) را می‌دهد که به طور پیش فرض در اکثر مرورگرها ساخته شده است. برای هر مقصودی می‌توانیم به آبجکت console دسترسی پیدا کنیم.

در node js، آبجکت console نیز به صورت گلوبال برای هر مقصودی در دسترس است‌، یک console اشکال زدایی شبیه به مرورگر وب را ارائه می‌دهد‌، اما در نظر داشته باشید که کلاس console را ارائه می‌دهد که می‌توانیم نمونه console را که برای آن می‌نویسیم ایجاد و پیکربندی کنیم.

روش‌های بسیار کمی در آبجکت console موجود است که بشود از آنها برای اشکال زدایی استفاده کنیم‌، مهمترین آن‌ها روش log است.

console.log()

این روش به سادگی یک پیام به console می‌نویسد‌، همچنین یک آرگومان را تایید می‌کند که آبجکت مورد نظر ما console.log() بشود. این آبجکت می‌تواند از هر نوع داده‌ای باشد به عنوان مثال رشته‌ها‌، اعداد‌، بولیان‌ها‌، آرایه‌ها‌، اشیا،‌ نقشه‌ها و غیره.

console.log("some message") 
// some message
console.log({name: 'john', friend: 'doe'})
// {name: 'john', friend: 'doe'}

این فقط یک توضیح ساده از روش ()log در خصوص آبجکت console است‌، یک مورد مفیدتر و عملی‌تر این است که از آن برای خروج متغیرهای خاص در بخش‌های خاصی از کد خود استفاده کنید‌، مخصوصاً وقتی خطایی وجود دارد‌، بنابراین می‌توانید دقیقاً جایی که خطا وجود داشته باشد را بررسی کنید، و آن را رفع کنید. اما مطمئن شوید که هنگام اشکال زدایی، همه فراخوانی‌های ()console.log را حذف کرده‌اید، زیرا امکان دارد این موضوع را فراموش کنید.

console.warn()

این یک روش مفید دیگر در خصوص آبجکت console است‌، که یک پیام هشدار به console می‌فرستد. همچنین بعد از تایید آرگومان به console مرورگرها منتقل می‌‌شود.

for (let i = 0; i < 5; i++) {
 if(i%2 !== 0){
 console.warn(`${i} is not an even number`)
 }
}    

// 1 is not an even number
// 3 is not an even number

این مورد کاملاً مفید است، وقتی که ما در حال ساخت پکیج‌هایی هستیم که توسعه دهندگان دیگر از آن استفاده نمی‌کنند‌، ما می‌توانیم از این روش برای اطلاع دادن به آنها استفاده کنیم که در صورت عدم رسیدگی یا متوقف شدن، ممکن است چیزی منجر به خطا یا اشکال در کد شود‌.

console.error()

این روش به ما امکان می‌دهد تا پیام خطا را به  console بفرستیم‌، مانند روش‌های قبلی که در بالا بحث کردیم‌، روش خطا نیز آرگومان را تایید می‌کند که به کنسول ارسال شود.

console.error("oops yous just pushed the wrong button")

// oops yous just pushed the wrong button

تفاوت این سه در این است که ()console.log  منجر به تمیز نگه داشتن console شما می‌شود‌، به طوریکه کافیست فقط یک پیام ()console.warn را چاپ کنید، که ادامه، پیام را به همراه علامت هشدار چاپ می‌کند‌، در حالی که ()console.error پیام با علامت خطا را log می‌کند.

زمان‌بندی روند کار

آبجکت console روش دیگری را هم ارائه می‌دهد که برای اشکال زدایی مفید است‌، به ما امکان می‌دهد مدت زمان انجام یک کار را پیگیری کنیم. برای شروع یک تایمر console.time() را فراخوانی کنید که یک تایمر را شروع می‌کند‌، در پایان تایمرشما console.timeEnd() را فراخوانی کنید. این مورد به شما کمک می‌کند تا بدانید که فرآیندهای شما چه مدت طول می‌کشد‌، همچنین می‌تواند به شما کمک کند تا کد خود را برای کارآیی بیشتر و جلوگیری از نشت حافظه غیر ضروری‌، بازگردانی کنید.

console.time()
let name = 'Kal'
name += ' el'
console.log(name.indexOf('K'))
console.timeEnd()

نمایش داده‌ها به صورت جدول

برای پیام خروجی به مرورگر می‌توانید از ()console.table استفاده کنید‌، نکته جالب در مورد این روش این است که هنگام نمایش داده‌ها به صورت جدولی، وقتی که مقداری را به آبجکت پاس می‌دهیم دارای یک جفت key-value می‌باشد، مثلاً یک آرایه یا یک آبجکت‌.

const arr = ['foo', 'bar', 'john', 'doe']
console.table(arr)

| index | value |
|   0   |   'foo'   | 
|   1   |   'bar'   |
|   2   |   'john'   | 
|   3   |   'doe'   | 

اگر این یک آبجکت بود‌، می‌دیدیم که key‌ها به همراه مقادیرشان از سیستم خارج می‌شوند‌، دقیقاً مانند آرایه‌ای که در مثال بالا وجود دارد.

ساخت یک lodger سفارشی

اگر node js را روی رایانه خود نصب کرده باشید‌، می‌توانید از این مزیت استفاده کرده و lodger سفارشی خود را بسازید‌، من مختصراً در مورد انجام این کار توضیحی ارائه می‌دهم.

نصب node js

برای نصب node js بر روی کامپیوتر خود کافیست به nodejs.org بروید و پایدارترین نسخه را بارگیری کنید.

Lodger

در node js‌‌، به صورت گلوبال، console در دسترس است. لازم به ذکر است که console موجود در node js شبیه به مرورگر است. می‌توانید از کلاس console نمونه‌ای از یک console ایجاد کنید‌. بیایید ببینیم چگونه انجام می‌شود.

const fs = require("fs");

// creating writeStreams that will be used by our Console class.
const outStream = fs.createWriteStream('./log.txt')
const errStream = fs.createWriteStream('./errLog.txt')

// when we instantiate the Console class it takes in two arguments, they mudt be writeable streams

const Lodger = new console.Console(outStream, errStream)

Lodger.log('hello worl')
Lodger.warn('stop doing that')
Lodger.error('you touched the wrong button')

فهرست مورد نظر را بازبینی کنید و خواهید دید که دو فایل ایجاد شده است:

  • log.txt
  • errLog.txt

log.txt گزارش‌ها و هشدارهای عادی ما را نگه می‌دارد‌، به عنوان مثال Loger.log() و Lodger.warn(). در نهایت گزارش خطاهای ما به errLog.txt ارسال می شود و تمام!

امیدوارم این مطلب مفید واقع شده باشد.

منبع                      

چه امتیازی به این مقاله می دید؟
خیلی بد
بد
متوسط
خوب
عالی

دیدگاه‌ها و پرسش‌ها

برای ارسال دیدگاه لازم است، ابتدا وارد سایت شوید.

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

آفلاین
user-avatar
جواد غلامی @gholamuuuu
جواد هستم طراح و توسعه دهنده وب. مهندسی برق می خونم
دنبال کردن

گفتگو‌ برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن وارد شو