如何更改javascript代码中的变量

如何更改javascript代码中的变量,javascript,Javascript,我已经写了javascript代码来显示当前日期,它运行得很好。问题是,我想将var变量更改为let或const,但当我更改它时,它不起作用。你能帮助我吗?我想要现代的javascript代码 这是我的密码 const objToday = new Date(), weekday = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'), dayOfWeek

我已经写了javascript代码来显示当前日期,它运行得很好。问题是,我想将var变量更改为let或const,但当我更改它时,它不起作用。你能帮助我吗?我想要现代的javascript代码

这是我的密码




  const objToday = new Date(),
  weekday = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'),
  dayOfWeek = weekday[objToday.getDay()],
  domEnder = function() { let a = objToday; if (/1/.test(parseInt((a + "").charAt(0)))) return "th"; a = parseInt((a + "").charAt(1)); return 1 == a ? "st" : 2 == a ? "nd" : 3 == a ? "rd" : "th" }(),
  dayOfMonth = today + ( objToday.getDate() < 10) ? '0' + objToday.getDate() + domEnder : objToday.getDate() + domEnder,
  months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
  curMonth = months[objToday.getMonth()],
  curYear = objToday.getFullYear(),
  curHour = objToday.getHours() > 12 ? objToday.getHours() - 12 : (objToday.getHours() < 10 ? "0" + objToday.getHours() : objToday.getHours()),
  curMinute = objToday.getMinutes() < 10 ? "0" + objToday.getMinutes() : objToday.getMinutes(),
  curSeconds = objToday.getSeconds() < 10 ? "0" + objToday.getSeconds() : objToday.getSeconds(),
  curMeridiem = objToday.getHours() > 12 ? "PM" : "AM";
  yesterday = (function(d){ d.setDate(d.getDate()-1); return d})(new Date);

  var today =  dayOfWeek;
  var todaysDate = dayOfMonth + " " +curMonth + "," +curYear;
  var currentTime = curHour + ":" + curMinute + curMeridiem;
  var currenTDate = "today is " + dayOfWeek;
  var curMonthDay = curMonth + dayOfMonth;
  var yestDate = "Yesterday was: " + yesterday;


  document.querySelector(".h11").textContent = today;
  document.querySelector(".h12").textContent = todaysDate;
  document.querySelector(".hour").textContent = currentTime;
  document.querySelector(".h40").textContent = currenTDate;
  document.querySelector(".h41").textContent = curMonthDay;
  document.querySelector(".h42").textContent = yestDate;


当您使用var时,变量声明被提升并初始化为undefined。当您使用const或let时,它们会被提升,但不会初始化。所以当你说第5行是这里的问题时,你可以看到为什么今天抛出了一个错误。这里有一个小演示。您会注意到var示例如何给出undefined,而const示例给出index:40 Uncaught ReferenceError:无法在初始化之前访问'const_name'

//带var var test1=d1; console.logtest1; var d1=新日期; //有常数 常数test2=d2; console.logtest2
const d2=新日期;定义不起作用。错误消息?它是否显示错误?也许您正在控制台中进行测试,并且变量已经定义好了?在初始化之前无法访问“today”时出现了一个错误。当我将var更改为const时,表明第5行有错误