js基础

javascript语法

一、聊聊学习想法

  • 本文章来自拉勾教育大前端,终于进入javascript模块了,也是前端学习者最重要的一门语言了,前端不管入门还是进阶,一定都要有知识体系建设的想法。从2019年到参加拉勾教育,一直都是处于自学的阶段,说真的,自学真的很困难,它不会像拉勾那样有整套学习体系,知识点概况全面。首先HTML、css、Javascript这三样真的很重要,不用去管那些花里胡哨的框架,因为框架是在不断迭代的,而这三样却是最基础的,无论前端怎么变化,只有打好这个基础,就等于打开了前端世界的钥匙。第二个就是无法利用所学的东西,说到这个就可以提下开发项目经验问题,所谓读万卷书不如行万里路,实际经验才是总结自己不足,检验自己的最好磨刀石。

二、笔记

javascript是什么

  • 运行在客户端的脚本语言,用来给HTML增加动态功能
  • 由三部分组成,ECMAScript、DOM、BOM

alert()

  • 在浏览器弹出一个警示框,内容可以自定义
  • 作为一个函数执行,必须在后面添加小括号,可以传递参数
  • 所有特殊功能符号必须是英文字符,js对换行、缩进、空格也不敏感
  • 如果js中没有控制结构,代码都是从上往下,从左往右加载的

prompt()

  • 弹出一个对话框,可以在输入框根据提示输入内容
  • prompt语句也是js内置的一个功能,有两个参数进行传递
    prompt("请输入您的年龄","18");
    

console.log()

  • 在控制台审查元素中查看,可以在控制台,书写语句,执行
  • js 有一个内置对象 console,内部封装了大量的属性和方法(函数),可以通过给
    console 对象打点调用方法名()、属性名方式去执行。有一个叫做 log(日志)方法,可以
    实现参数位置自定义内容在控制台输出

字面量

  • 表达一个固定值的表示法,比如:数字、字符串、undefined、布尔类型

整数

  • 十进制是最基本的数值字面量格式,可以直接在代码中输入
  • 十六进制的前缀是0x或0X。后面可以包含数字(0-9)和字母a~f或A~F
  • 八进制中,如果以0开头,每个位数有超过0-7直接的数字出现,强制忽略前面的,直接讲后面数当成十进制
  • 在进行算术计算时或者参与程序,所有八进制和十六进制的数字都会被转换成十进制

浮点数

  • 浮点数不区分进制,都是十进制,如果浮点数大于0小于1,可以省略小数前面的0

infinity 无穷

  • 计算机计算能力有限,高于最大计算值显示正无穷,低于最小计算能力显示-infinity
  • 最小值:Number.MIN_VALUE,这个值为: 5e-324
  • 最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308

NaN

  • 表示不是一个正常的数,但还是number类型的数字
  • NaN与任何值不相等,包括本身
  • isNaN():判断一个数据是不是一个NaN,返回布尔值

字符串字面量

  • 组成:字母、汉字、特殊符号、空白
  • 用一对单引号或者双引号构成的。引号中间可以有任意个字符或者空

转义符号\

  • \n 换行 \t Tab制表 ' 单引号 " 双引号 \ 反斜杠

变量

  • 变量相当于一个容器,内部可以存储任意类型的数据
  • 使用var关键字进行定义,后面加一个空格,自定义变量名

变量的命名规范

  • 由字母、数字、下划线、¥符号组成,不能用数字开头,区分大小写
  • 不能是关键字和保留字,变量名是有意义的,遵循驼峰命名法

变量赋值

  • 变量定义后,如果没有进行赋值,内部默认存储值叫undefined

数据类型

简单数据类型

  • Number: 数字类型,不区分整数、浮点数、特殊值
  • String:所有字符串
  • undefined:未定义
  • Boolean:只有true和false两个字面量,必须是小写,ture为1,false为0
  • null:本身是个数据,表示一个空对象指针

object:复杂数据类型

检测数据类型

  • 使用typeof进行数据检测
  • typeof(null)返回的是object类型

数据类型转换

转换成字符串类型

  • 数据.toString()方法和String():转换成字符串类型
  • toString()无法转换null和undefined
  • + 号拼接字符串方式
console.log(true.toString());
console.log(String(23));

Number():转换成数字类型

  • 字符串:纯数字字符串转为对应数字,空字符串和空白字符串转为0 ,非空非纯数字字符串转为 NaN
  • 布尔值:true 转为 1,false 转为 0
  • undefined:转为 NaN
  • null:转为 0
  • parseInt():字符串转换整数方法
    • 可以讲浮点数转成整数,去掉小数部分
    • 将字符串转为整数数字
  • parseFloat():字符串转换成浮点数
    var num = parseInt(prompt("请输入你今年的年龄"))
    

Boolean():将数据转换成布尔类型

  • 转型函数 Boolean() 可以用于任何数据类型,将其他数据类型转为布尔类型的值
  • 转为 false :NaN、0、“”空字符串、null、undefined
  • 转为 true :非0 非NaN数字、非空字符串

操作符

算术运算符(+ - * / %)

  • 先算乘除取余、再算加减,有小括号先算小括号
  • NaN参与的运算:得到的结果都是NaN
  • 隐式转换:所有数据参与数学运算,其他数据类型自动转换成数字类型,再参与运算

比较运算符

  • 比较他的操作数并返回一个布尔类型值,运算结构要么是true,要么是false
  • == 相等,只判断大小是否相等,不判断数据类型
  • === 全等,数据类型和值的大小都相等
  • null 的判断比较特殊:null 与 0 判断时,相等判断为 false,>= 和 <= 判断为 true

逻辑运算符

  • 常用于布尔类型值。&&:与,都真为真,有假为假、||:或,有真就真,都假才假、!:非,非真既假,非假既真
  • 逻辑运算顺序: 非、与、或
  • 并不是所有逻辑运算返回结果都是布尔值,其他数据参与得到的就是数据本身

赋值运算符

  • = 等于
  • += 加等于
  • -= 减等于
  • *= 乘等于
  • /= 除等于
  • %= 取余等于
  • ++ 递加
  • -- 递减

一元运算符: ++和--

  • a++在参与程序中先参与,后自加
  • ++a在参与程序过程中先自加,后参与

运算优先级

1.()优先级最高
2.一元运算符 ++ -- !
3.算数运算符 先* / % 后+ -
4.关系运算符 > >= < <=
5.相等运算符 == != === !==
6.逻辑运算符 先&& 后||
7.赋值运算符

流程控制

  • 通过一些特殊结构可以让js代码加载时,要么跳过一部分不加载,或者可以循环加载一段代码
  • 一般语句以分号结束,特殊的结构除外

if语句

  • if通过某个指定的判断条件,决定走哪个分支的代码
  • condition expression: 条件表达式,参与程序过程中强制得到一个布尔值执行结果
  • statement:结构体中执行都执行,不执行都不执行
      if(condition expression){
        statement1;
      }else{
        statenemt2;
      }
    
  • 多行分支代码如下:
    var num = parseFloat(prompt('请输入你的成绩'));
      if (num >= 85) {
        alert('优秀');
      } else if(num >= 75 && num < 85) {
        alert('良好');
      } else if(num >= 60 && num< 75){
        alert('及格');
      }else{
        alert('不及格');
      }
    

三元表达式

  • boolean-expression ? true_value : false_value;
  • boolean_expression:布尔表达式,表达式在参与三元运算中必须求得一个布尔类型的值,要么是 true,要么是 false,结果作为判断依据,判断到底去:前面的值还是后面的值
  • true_value:布尔表达式的值为真时,三元表达式的结果
  • false_value:布尔表达式的值为假时,三元表达式的结果
  • 多用于给变量赋值根据条件二选一的情况

switch语句语法

  • 多用于给一个表达式去匹配多种固定值可能性的情况

  • default:相当于if语句中的 else,否则的情况,如果前面的 case 都不匹配,执行 default 后面的语句。

    switch (表达式) {
      case 值1:
          结构体1;
          break;
      case 值2:
          结构体2;
          break;
      ……
      default: 
          结构体n;
          break;
       }
    

循环语句

for循环

  • for 循环是一种前测试循环语句,在反复执行一段代码之前,都要先测试入口条件,如果条件为真,可以继续循环,如果条件为假,必须跳出循环不再执行。
    for (var i=1; i <= 100; i++){
      console.log("这是上课第"+ i + "天");
    }
    console.log("毕业啦;")
    

do while循环

  • do while 循环是一种后测试循环语句,会先执行一次结构体,执行完后才会去判断入口条件,如果条件为真能够继续下一次循环,如果条件为假跳出循环。
var i = 1;
  do{
    console.log(i);
    i++;
  }while(i <= 10)

while循环

  • while 循环是一种前测试循环语句,在执行循环体之前都要测试入口条件,条件为真继续执行,条件为假直接跳出循环。
      while(条件表达式){
           循环体;
      }
    

穷举思想

  • 一种解决问题的方法,将所有的需要数据所在的范围内所有的数据都一一列举出来,再根据规律的条件对所有这些数据进行筛选,这种方式就是穷举法。

累加器

  • 有时候需要的不是每个数据是什么,需要得到所有数据的加和,必须想办法将所有的数据的和存起来,就用到了累加器
    var mul = 1;
    for(var i = 10; i>=1; i--){
      mul *= i;
    }
    console.log(mul);
    

你可能感兴趣的:(js基础)