有了数据类型,才能解析数据
相同数据类型才有比较意义,运算意义
原始类型
number
123.5
string
"123"
boolean
true
undefined
未初始化变量
null
是object类型
单值: a = 1, b='a'
动态: 数据类型由值的类型确定
let x = 123 ;x = 'php.cn' ;
引用类型
array数组
每个成员可以是原始类型,也可以是引用类型.每个成员类型可以不一样,同样可变
const arr = ['电脑' , 2 , 5000 ];console .table (arr);console .log (arr[0 ]);console .log (arr[1 ]);console .log (arr[2 ]);console .log (arr.length );console .log (typeof arr);console .log (Array .isArray (arr));
object对象
相当于类,对于符合js标识符命名规范的属性名,可以用.
来访问.使用键名通用访问方式可访问所有成员
obj123 = { name : '电脑' , num : 2 , price : 5000 , 'my email' : 'a@php.cn' , total : function ( ) { return this .name + '总价 : ' + this .num * this .price + ' 元' ; }, }; console .log (obj123.total ());
数组和对象混合使用
obj = [ { name : '手机' , num : 2 , price : 5000 }, { name : '电脑' , num : 5 , price : 6000 }, { name : '相机' , num : 4 , price : 2000 }, ]; console .log (obj);let res = obj.map (item => item.num * item.price ).reduce ((acc, cur ) => acc + cur);console .log (res);
function函数
函数既是数据类型,也是对象
将函数当成数据类型的优点
function f1 ( ) {}function f2 (f ) { console .log (typeof f); } f2 (f1);function f3 ( ) { return function ( ) { return 'hello world' ; }; } console .log (f3 ()());
const
const 的本质: const
定义的变量并非常量,并非不可变,它定义了一个常量引用一个值。使用 const
定义的对象或者数组,其实是可变的。下面的代码并不会报错:
const car = {type :"Fiat" , model :"500" , color :"white" };car.color = "red" ; car.owner = "Johnson" ; const car = {type :"Fiat" , model :"500" , color :"white" };car = {type :"Volvo" , model :"EX60" , color :"red" };
流程控制
分支
if
else if
else
switch case
区间判断,并非单值,一定用true才能进入分支
必须要用true做为switch入口判断条件
switch (true ) {case age >= 18 && age < 35 : console .log ('允许单独观看' ); break ; case age >= 35 && age < 60 : console .log ('允许二人或多人观看' ); break ; case age >= 60 && age < 120 : console .log ('建议在孩子的陪同下观看' ); break ; case age >= 120 || age < 8 : console .log ('非法年龄段' ); break ; default : console .log ('少儿不宜' ); } switch (language.toLowerCase ()) {case 'html' : console .log ('超文本标记语言' ); break ; case 'css' : console .log ('层叠样式表' ); break ; case 'js' :case 'javascript' : console .log ('前端通用脚本语言' ); break ; default : console .log ('未定义的选项' ); }
循环
while
do while
for
数组可以用while,for,for-of,for-in 对象用for-in
const colors = ['red' , 'green' , 'blue' ];for (let item of colors) { console .log ('phpcn: ' + item); } for (let item of colors.values ()) { console .log ('values: ' + item); } for (let item of colors.keys ()) { console .log ('values: ' + item); } for (let item of colors.entries ()) { console .log ('key-value: ' + item); } const obj = { a : 1 , b : 2 , f : function ( ) {}, }; for (let key in obj) { console .log (obj[key]); } for (let key in colors) { console .log (colors[key]); }