var可以在封闭的函数作用域进行声明,但是如果不在封闭的函数作用域进行声明,这个声明就将是全局的。它没有块级作用域的概念。let与var区别在于,let不仅在函数中封闭,也在块语句封闭,即在{ 与}包裹着的所有语句中。const的声明,只能在初始化时赋值给变量,是无法改变被const声明的变量的值的。(``)包裹。若true or false后的语句存在多层,应用{``}块级符号包裹[``]是一种简写,可以省略数组内的变量(从0开始)
|
|
'x'的父元素中添加一个div元素。这里为什么要叫div1呢,因为这是容器的名字,随便叫什么都可以,无需纠结。
|
|
创建三个div
|
|
每个div内有一个kbd
|
|
每个div內生成10个kbd
|
|
每个div内生成不一样多的kbd
|
|
不仅更改了生成的div中的kbd数量,并且让每个kbd的内容也根据数组改变。
|
|
function后的括号内容是随便取得,这是一个hash的名字,包含我们按键的所有信息
console.log调试jslocation.href = 'http://'+website表示在当前页面打开。window.open括号内很眼熟吧,就不多说了。
|
|
创建button,第四,五行告诉我们用户点击了哪个button,并且在第六行编辑网址,更改了hash中的key对应的网址。
xxxxxxx.target表示被用户点击的按钮,不用button1是因为它只是一个容器,在二十六个循环中,也只有一个button1,只是容器内的值一直在变化。如果写的是button1,就会一直调用循环最后button1内的值。目前还有问题,用户更改之后再刷新,无法存储用户的更改。
|
|
localStorage.setItem('uuu',JSON.stringify(hash))只要这个hash变了,就把hash存在’uuu’中。也就是把hash备份在uuu这个桶里。
边框外的边框,用box-shadow。box-shadow: 0 0 0px 1px red;这个0px是指不让边框模糊,而后的1px是让向外延伸1px。如果想再扩展一层,可以写成box-shadow: 0 0 0 1px red, 0 0 0 2px black;若在键盘下方再做阴影,则为box-shadow: 0 0 0 1px red, 0 0 0 2px black,0 3px 0 2px white;
|
|
可令我们做的键盘内的文字局中。
kbd1.className = 'key'改名。
|
|
|
|
最后行为若有该地址,但是被拒绝访问icon,则也显示我们准备的图标。
|
|
找到button2对应的img2,也就是点击了这个按钮后,找到对应的图标,然后更改图标的地址。
|
|
c('div',{className:'row'}),这个函数首先会先创建div,然后会把输入的这个hash里的所有元素拿出来,放到创建的元素中去。key对应我们输入的hash数组里的这个元素的所有信息,就好比是一一对应生成。