JavaScript JS入门 基础知识

开发语言分类
解释性语言:翻译一行,执行一行
JS、Python
编译性语言:通篇翻译后在执行
Java、C、C++、C#

代码报错:
1.语法错误 没有按照要求书写
2.逻辑错误
3.运行错误

开发流程
1.功能的设计
2.需求分析
3.功能开发(确定数据结构和算法)
4.功能测试
5.功能维护
6.功能上线

软件—程序–数据结构和算法
数据结构:存储数据的方式
算法:解决问题的方法和步骤

算法的特点:
1.有穷性:
一个算法的操作步骤,是在有限的范围内可以完成的
2.确定性
3.有0到多个输入
4.有1到多个输出
5.有效性(123/0无效)
ECMAscript ES5 ES6 版本号
//单行注释
/*多行注释/

终端操作问题
在终端打开(需要在文件单机右键打开终端) node 文件名加后缀
cls清幕
*** has already been declared ***重复声明 报错
*** is not defined ***没有声明 报错
undefined 当前变量声明未赋值(不是报错)

创建变量
ES5书写格式:关键字(词) 标识符(变量名)分号
eg:var f70;

ES6书写格式:关键字(词) 标识符(变量名)分号
eg:let F70;

var和let的区别
1.var声明的变量,是可以重复的,let不行
2.var声明变量 ,可以先使用后声明。

变量的赋值
书写格式 关键词 标识符 赋值符号 表达式 分号(写法叫变量初始化)
var F70 = 0 ;

使用
console.log()在终端输出小括号里的内容

声明常量(不能改变,只能声明一次)
书写格式:关键词 标识符(变量名)分号
const F73;
F73 = 123;

数据类型 (基础 引用)
基本(简单)数据类型
1.undefined

let F70 = undefined;

查看数据类型

console.log(typeof FFF)

typeof拓展
输出一个没有声明的变量,会输出undefined(不会报错)
原因:计算机会默认以var声明该变量
console.log(typeof FFF);
2.null 空
let F74 = null;

3.boolean 布尔类型(适用场景:判断条件)
两个值: 真 true 假 false
let F70 = true;
let F71 = false;

引用(复杂)数据类型
object

4.数值型
let num1=1;
let num2=1.5;
let num3=-200;

NaN:is not a Number;不是一个数字,是数值
isNaN(标识符)判断是不是一个纯数字
返回true则不是,false是
适用场景:判断用户的输入是不是一个纯数字 T/F

let inputNum = “abc”
console.log(isNaN(inputNum))//true
console.log(!isNaN(inputNum))//false

parseInt当前变量取整 (I是大写i)
注:从第一个纯数字截取,一直到非数字的前一位
第一个字符,不是数字,负号,返回NaN
第一个字符是0,到第一个不是0 之前都是无效
扩展:以0X开头代表十六进制

let inputNum =123abc”;console.log(parseInt(inputNum)

5.string 字符型 字符串
书写格式:内容左右加引号 单引号双引号都可以
如果想在输出的内容有引号 外面双里面就单 外面单 里面就双

let str = "egucation";  
console.log(str);  //egucation
str='成都'
console.log(str);  //成都

字符串模板
变 量 名 l e t a c c o u n t = " 成 都 " ; l e t s t r = ‘ 欢 迎 光 临 {变量名} let account = "成都"; let str =`欢迎光临 letaccount="";letstr={account}啦啦啦啦`
console.log(str); //欢迎光临成都啦啦啦啦

symbol类型 在讲对象时讲解 没讲

数据类型的转换
boolean(布尔)类型转换(隐式转换) true 1 false 0
以下内容在转换布尔值时为false
1.false
2.0、-0
3.null
4.undefined
5.``、’’、""
6.NaN

强制类型转换布尔

let str = "abc"
let boo = Boolean(str);//把str内容转换成布尔值
console.log(boo)//true

数值类型的转换
强制转换数值

let str =123let num = Number(str);
console.log(num typeof num);//123 number

str=“abc”
num=Number(str);
console.log(num,typeof num);//NaN number

快捷转换数值类型方式(隐式转换)

let str = "200"
let num = str -0;  //js会降低报错  会把str直接转换成number
console.log(num,typeof num)  

强制转换字符串

let num = 123;
let str = String(num)
console.log(str,typeof str) //123 string

快捷转换字符串类型方式(隐式转换)

let num = 123
let str = num + "";
console.log(str,typeof str);//123 string

向下取整
Math.floor()
向上取整
Math.ceil()
四舍五入
Math.round()
保留两位小数
Math.toFixed()
创建变量命名要求
软性要求:“见名知意"
硬性要求:
不能以数字开头 可以包含数字、字母、下划线、连字符
命名方式:
1.大驼峰命名法:SongYang
2.小驼峰命名法(除了第一个后面的首字母大写):songYangYa
3.蛇形命名法:song_yang_ya

运算符

++在后  在使用  在自增(--一样) 只能用在变量
let num1 = 1;
let num2 = num1++;
console.log(`num1:${num1},num2:${num2}`);//2 1
++在前,先自增,在使用(--一样) 
let num3 = 1;
let num4 = ++num3;
console.log(`num3:${num3},num4:${num4}`);//2 2

注: 要在一个表达式中,才考虑先后顺序

算数运算符
%取余 +加 -减 乘 /除 =赋值运算符
简写 k=k+3 k+=3
k=k-3 k-=3
k=k/3 k/=3
k=k
3 k*=3
k=k%3 k%=3

比较运算符 返回的是布尔值
大于 >
小于<
等于==
大于等于 >=
小于等于<=
不等于!=
全等 ===(值和类型都相同才会返回true )
不全等 !==
比较字符串会按位比较 一个一个的位置比较 非数字就比较ASC码 有数字就会转换成数比较
123a < 123b

判断用户输入的是不是纯数字
isNaN()

逻辑运算符
非 与 或
非运算 取反 表达式: ! 之前会先转换布尔

console.log(!1+2//2  1取布尔 true  取反fales  0+2=2
console.log(!null//false

与运算 (并且 同时) 表达式 : && 一假全假
情况1:

  • 表达式1&&表达式2
  • step1:先判断表达式1的值是不是flase
  •   如果是则返回表达式1的值
    
  • step2:若表达式1的值是true,则返回表达式2的值
  • 情况2:
  • 表达式1&&表达式2&&表达式3…&&表达式n
  • step1:先判断表达式1的值是不是flase
  •   如果是则返回表达式1的值
    
  • step2:若表达式1的值是true,
  •   则判断表达式2的值,是不是true
    
  •   是true,则判断表达式3,以此类推。
    
  •   是false,则返回表达式2的值,以此类推。
    
console.log(true && true//true
console.log(true && true && false)
console.log(true&&false&&1);//false
console.log(true&&0&&1);//0
console.log(true&&1&&2);//2
console.log(true&&0&&false);//0

或运算 表达式 : || 一真全真(判断第一个是不是真 是直接返回 不是就直接返回第二个)

console.log(false || false)//fales
console.log (true || true || false)// true

位运算符
|和&
先把表达式转换成二进制,按位运算后在转出十进制

三目运算符
书写格式:表达式1(条件)?表达式2:表达式3;
如果表达式1成立 则变表达式2 否 表达式3

快速转数值 -0 或*1
快速转布尔值 !(!变量名)
转换字符 变量名 变量+""

NaN不等于任何值 包括他自己
isNaN(标识符)判断是不是一个纯数字

ASC码每个字母都有值

获取用户输入

const 命名 = require("readline-sync");

判断用户输入最大的数

const sz = require("readline-sync");
console.log(`请输入第一个数`);
let inputNum1 = sz.question()-0;
console.log("请输入第二个数");
let inputNum2 = sz.question()-0;
console.log("请输入第三个数");
let inputNum3 = sz.question()-0;
inputNum1 > inputNum2&&inputNum1>inputNum3 
?
console.log(`您输入的三位数最大数是`+inputNum1)
:
(inputNum2>inputNum3
    ?
    console.log(`您输入的两位数最大数是`+inputNum2)
    :
    console.log(`您输入的两位数最大数是`+inputNum3)
    );

多次判断
if(判断条件){ 代码块 条件为真就会执行这里的代码块}else if(判断条件){ 代码块 条件为真就会执行这里的代码块} else if(判断条件){ 代码块 条件为真就会执行这里的代码块} else{ 代码块 条件为假就会执行这里的代码块}

作用域
全局作用域
声明的变量不包括在大括号里,JS文件的任何地方都可以使用
局部作用域
声明的变量在某个大括号里面 就只能在大括号里面使用

不同的作用域可以声明相同变量名的变量(仅限let和const)
变量会向上找 若果找不到就会报错 *** is not defined

switch语句
书写格式:switch(匹配值){
case 匹配值 1 : {代码块;}
case 匹配值2 : 代码块;
}
1.匹配方式是全等
2.break终止case的继续执行代码
使用场景:功能选项
3.default 结束输出

判断是不是数字

!isNaN(num)
num == parseInt(num)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值