堆、栈
- 一般情况下,整型等占用内存空间较小的存在栈空间中。
- 一般情况下字符串类占用空间较大的存放在堆空间中。
可将栈空间看作是一张数据表。
变量
- 举例
var a;//生命一个变量a
a=12;//若栈空间中存在12则a指向它,否则开辟内存空间存入12
a=13;//将a原来指向的12修改为13
a='hello';//a有原来指向的栈内存转为堆内存(不建议这样做)
console.log(window.a);
console.log(a);
//这两条语句本质上是相同的,只不过第二个将window省略了
//任何变量都可以称之为window的一个属性
//所以可以说变量都是对象
快捷编码技巧
Emmt是一个代码提示插件,可以通过tap键快速编写代码
div tap键
效果
<div></div>
div*5 tap键
效果
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
div>p*5 tap键
效果
<div><p></p></div>
<div><p></p></div>
<div><p></p></div>
<div><p></p></div>
<div><p></p></div>
div.divcss#div0$*5 tap键
<div class="divcss" id="div01"></div>
<div class="divcss" id="div02"></div>
<div class="divcss" id="div03"></div>
<div class="divcss" id="div04"></div>
<div class="divcss" id="div05"></div>
JavaScript基础语法
数据类型
- number
- string
- boolean
- object
- undefined
- null
共6中类型的变量,其中undefined和null类型皆只有它们本身
- 测定变量的类型
console.log(typeof a);//控制台输出a的数据类型
Web应用的基本结构
- HTML来确定网页的结构
- CSS来确定样式
- JS用来确定网页的事件
th.removeAttribute('disabled');//删除disabled属性
xiaoji.innerText=acount.toFixed(2);//保留两位小数
% 和 / 的应用
%用来求余数
/用来求商
- 代码示例
var sec=10000;
var hou=parseInt(sec/3600);
var min=parseInt((sec%3600)/60);
var ssec=sec%60;
console.log(hou+":"+min+":"+ssec);
parseInt用来将结果转化为整型
- 运行结果
2:46:40
++和--
sec++;可等效为sec+=sec; sec=sec+1;
- 关系运算的结果都为boolean
boolean类型
类型 | Boolean类型中false对应的值 |
---|---|
number | 0 |
string | '' |
object | object不存在 |
null | null |
undefined | undefinded |
null==undefined 是正确的
==与===
- ==为等式,会进行临时类型转换后再比较
代码示例
// var s1='hello';
// var s2=5;
// console.log(s1==s2);
// console.log(s1===s2);//恒等
// console.log(s1.length);
// console.log(new String(s1).length);//两者相同
使用有代码可知s1.length为object类型,s2为number型。
使用==比较时只会比较两者的内容而不在乎类型。
- ===为恒等式,在比较时不光比较内容,还要比较两者了数据类型是否相同。
满足===的式子一定满足==
&&,||,!
- 优先级:!>&&>||
优雅的写代码
name && console.log(name);
//等同于
if(name){
console.log(name);
}
让代码变得简洁优雅
连接符
- 代码示例
var a=12,b=13;
console.log('a='+a+','+'b='+b);//1
console.log(`a="${a}",b=${b}`);//2
- 用来将字符串和变量连接起来
- 通过``和${},以正常输出文本语句的习惯输出变量
网友评论