Blogger Information
Blog 11
fans 0
comment 0
visits 5535
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
JS入门之类型和流程
斗人传说
Original
329 people have browsed it

博客已迁移至自建网站,此博客已废弃.请移步至:https://blog.ours1984.top/posts/jstype/ 欢迎大家访问

  • 有了数据类型,才能解析数据
  • 相同数据类型才有比较意义,进行运算

原始类型

类型 举例
number 123.5
string “123”
boolean true
undefined 未初始化变量
null 是object类型
  1. 单值: a = 1, b=’a’
  2. 动态: 数据类型由值的类型确定
  1. let x = 123;
  2. // console.log(typeof x);
  3. x = 'php.cn';
  4. // Number -> String
  5. // console.log(typeof x);

引用类型

ZNW`0${H8AAR`K$Y2T}43K8

array数组

每个成员可以是原始类型,也可以是引用类型.每个成员类型可以不一样,同样可变

  1. const arr = ['电脑', 2, 5000];
  2. // console.log(arr);
  3. console.table(arr);
  4. console.log(arr[0]);
  5. console.log(arr[1]);
  6. console.log(arr[2]);
  7. console.log(arr.length);
  8. console.log(typeof arr);
  9. console.log(Array.isArray(arr));

object对象

相当于类,对于符合js标识符命名规范的属性名,可以用.来访问.使用键名通用访问方式可访问所有成员

  1. obj123 = {
  2. name: '电脑',
  3. num: 2,
  4. price: 5000,
  5. 'my email': 'a@php.cn',
  6. total: function () {
  7. // this: 当前对象的引用,和当前对象绑定
  8. return this.name + '总价 : ' + this.num * this.price + ' 元';
  9. },
  10. };
  11. console.log(obj123.total());

数组和对象混合使用

  1. obj = [
  2. { name: '手机', num: 2, price: 5000 },
  3. { name: '电脑', num: 5, price: 6000 },
  4. { name: '相机', num: 4, price: 2000 },
  5. ];
  6. console.log(obj);
  7. let res = obj.map(item => item.num * item.price).reduce((acc, cur) => acc + cur);
  8. console.log(res);

function函数

函数既是数据类型,也是对象

将函数当成数据类型的优点

  • 当成函数的参数: 回调
  • 当成函数返回值: 闭包
  1. // 1. 当成函数的参数: 回调
  2. function f1() {}
  3. function f2(f) {
  4. console.log(typeof f);
  5. }
  6. // f2是一函数, 它接受一个函数做为参数,可以将上面声明的f1传入
  7. f2(f1);
  8. // 2. 当成函数返回值: 闭包
  9. function f3() {
  10. return function () {
  11. return 'hello world';
  12. };
  13. }
  14. console.log(f3()());

const

const 的本质: const 定义的变量并非常量,并非不可变,它定义了一个常量引用一个值。使用 const 定义的对象或者数组,其实是可变的。下面的代码并不会报错:

  1. // 创建常量对象
  2. const car = {type:"Fiat", model:"500", color:"white"};
  3. // 修改属性:
  4. car.color = "red";
  5. // 添加属性
  6. car.owner = "Johnson";
  7. // 但是我们不能对常量对象重新赋值:
  8. const car = {type:"Fiat", model:"500", color:"white"};
  9. car = {type:"Volvo", model:"EX60", color:"red"}; // 错误

流程控制

分支

if else if else switch case

区间判断,并非单值,一定用true才能进入分支 必须要用true做为switch入口判断条件

  1. switch (true) {
  2. case age >= 18 && age < 35:
  3. console.log('允许单独观看');
  4. break;
  5. case age >= 35 && age < 60:
  6. console.log('允许二人或多人观看');
  7. break;
  8. case age >= 60 && age < 120:
  9. console.log('建议在孩子的陪同下观看');
  10. break;
  11. case age >= 120 || age < 8:
  12. console.log('非法年龄段');
  13. break;
  14. default:
  15. console.log('少儿不宜');
  16. }
  17. switch (language.toLowerCase()) {
  18. case 'html':
  19. console.log('超文本标记语言');
  20. break;
  21. case 'css':
  22. console.log('层叠样式表');
  23. break;
  24. case 'js':
  25. // case之间没有break,会连续输出
  26. case 'javascript':
  27. console.log('前端通用脚本语言');
  28. break;
  29. default:
  30. console.log('未定义的选项');
  31. }

循环

while do while for

数组可以用while,for,for-of,for-in 对象用for-in

  1. const colors = ['red', 'green', 'blue'];
  2. // es6 : for-of
  3. for (let item of colors) {
  4. console.log('phpcn: ' + item);
  5. }
  6. // 完整语法: 只看值
  7. for (let item of colors.values()) {
  8. console.log('values: ' + item);
  9. }
  10. // 所有键名:只看键
  11. for (let item of colors.keys()) {
  12. console.log('values: ' + item);
  13. }
  14. // 所有键名:看键/值
  15. for (let item of colors.entries()) {
  16. console.log('key-value: ' + item);
  17. }
  18. const obj = {
  19. a: 1,
  20. b: 2,
  21. f: function () {},
  22. };
  23. // 不能用for-of, 用 for -in
  24. for (let key in obj) {
  25. console.log(obj[key]);
  26. }
  27. // 数组也是对象, 数组能否用for-in ? 可以的
  28. for (let key in colors) {
  29. console.log(colors[key]);
  30. }
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post