JS基础

JS
ECMA制定JS规范
ECMAscript ES5 ES6 版本号
开发语言分类
解释性语言:翻译一行,执行一行。
JS,python
翻译性语言:通篇翻译后执行。
Java,c,c++,c#
代码报错
1,语法错误
2,逻辑错误
3,运行错误
开发流程
1.功能设计
2.需求分析
3.功能开发(确定数据结构和算法)
4.功能测试
5.功能维护
6.功能上线
软件—程序—数据结构和算法
数据结构:存储数据的方式
算法:解决问题的方法和步骤
算法的特点
1.有穷性:一个算法的操作步骤,是在有限的范围内可以完成的。
2.确定性:只有真假
3.有0到多个输入
4.有1到多个输出
5.有效性(123/0无效)
作业:1.grid布局
预习:1流程图,2变量,3数据类型

专业术语
标识符
1.变量
2.常量 注:如果赋值给常量的是基本数据类型,常量存的是基本数据类型的值。
如果常量存的是引用数据类型,常量存的是基本数据类型的地址(引用数类型存储的值发生变化时,常量也会发生变化)
创建变量
命名规范:
1,硬性要求
a>不能以数字开头
吧>可以包含数字,字母,下划线,连字符
2,软性要求:见名知意
命名方式:
1,大驼峰命名法(每一个单词的首字母大写)
2,小驼峰命名法(除了第一个单词后面单词都首字母大小)
3,蛇形命名法(单词之间用_下划线连接)
ES5
书写格式:关键字/关键词 标识符(变量名) 分号
例子: var F70 ;
var F70;
ES6
书写格式:关键字/关键词 标识符(变量名) 分号
例子: let F71 ;
var F71;
let和var的区别
1.var声明的变量,是可以重复的,let不行。
2.var声明的变量,可以先使用后声明。
变量的赋值
书写格式: 标识符号 赋值符 表达式 分号
F70 = 0 ;
F70=0;
变量初始化(一般写这个)
变量的赋值
书写格式:关键词 标识符号 赋值符 表达式 分号
var F70 = 0 ;
var F70 =0;

使用变量 console.log();在终端输出小括号里的内容。
console.log(F70); //100 C

//表示XXX重复声明
// XXX has already been declared

//表示XXX没有声明(创建)
// XXXX is not defined
// console.log(F72); //F72 is not defined

// let F73;
// console.log(F73); //undefined 表示变量声明未赋值(不是报错)
// console.log(F70); //100

//ES6 声明常量
// 书写格式: 关键词(字) 标识符(变量名) 分号
// 例子: const F73 ;
// const F73 = 200;
// console.log(F73); //200
// F73 = 1;
// console.log(F73);//Assignment to constant variable.

//【数据类型】
//[基本数据类型]
//[undefined]
// let F70 = undefined;

//查看数据类型
//书写格式: typeof 标识符
// console.log(F70); //undefined
// console.log(typeof F70); //undefined

//[typeof扩展]
//输出一个未声明变量的类型,会输出undefined(即不会报错)
//原因:计算机会默认以var声明该变量
// console.log(typeof F73); //un

//[null] 空
// let F74 = null;
// console.log(F74); //null
// console.log(typeof F74); //null

//[Boolean]布尔类型 (适用场景:判断条件)
// 两个值: 真 true 假 false
// 注: 小写字母/
// let shexiaoguo = true;
// let huangmiliang = false;
// console.log(shexiaoguo); //true
// console.log(typeof shexiaoguo); //boolean
// console.log(huangmiliang); //false
// console.log(typeof huangmiliang); //boolean

// //[数值型]
// let num1 = 1;
// let num2 = 1.5;
// let num3 = -200;
// console.log(num1);//1
// console.log(num2);//1.5
// console.log(num3);//-200
// console.log(typeof num3);//number

//NaN: is not a Number;不是一个数字
// let num4 = NaN;
// console.log(num4);
// console.log(typeof num4);
// console.log(1 + 2);
// console.log(1 - 2);
// console.log(“A” - 123);//NaN

//isNaN(标识符) 判断是不是一个非数字
//返回true则不是数字,返回false则是纯数字

//适用场景:判断用户输入是不是一个纯数字(T/F)
// let inputNum = “ABC”;
// console.log(isNaN(inputNum)); //false

//获取用户输入的纯数字
// let inputNum2 = 123.5;
// inputNum2 = “456abc”;
// parseInt当前变量取整
// 注:从第一个纯数字截取,一直到非数字的前一位。
/**

  • 1、第一个字符,不是数字,负号,返回NaN
  • 2、第一个字符是0,到第一个不是0的数字。都无效。
  • [扩展]
  • 3、0X开始,代表十六进制。
    */
    // console.log(parseInt(inputNum2));
    //[作业] 四舍五入、向上取整、向下取整、保留小数位
    let num1 = 1.56;
    // console.log(向上取整为:${Math.floor(num1)}); //1

// let num2 = 1.56;
// console.log(向下取整为:${Math.ceil(num2)}); //2
// //四舍五入
// let num3 = 1.1;
// console.log(Math.round(num3)); //2

// //保留2为小数
// let num4 = 1.567;
// console.log(num4.toFixed(2));

//[string]字符型 字符串
// 书写格式: 内容左右加引号(双、单引号、字符串模版)

// let str = “education”;
// console.log(str); //education
// console.log(typeof str); //string
// str = ‘成都’;
// console.log(str); //‘成都’
// console.log(typeof str); //string

// str = “欢迎光临’XXX’,马尔代夫银行!!!”;
// console.log(str);

//[字符串模版]
// let account = “F70”;
// let str = 欢迎光临${account},马尔代夫银行!!!;
// console.log(str);

//【symbol类型】对象时讲解

//【数据类型的转换】
//【Boolean类型转换】true 1 false 0
//下列例子是比较运算符(会把左右内容转换数值)
// let F70 = 1;
// console.log(F70 == true); //true
// F70 = “abc”;
// console.log(F70 == true); //false

/**

  • [隐式转换]
  • 以下内容在转换布尔值时为false
  • 1、false
  • 2、0,-0
  • 3、null
  • 4、undefined
  • 5、"",’’,``
  • 6、NaN
    */

//【强制类型转换布尔】
//书写格式:Boolean(标识符/具体的值)
// let str = “ABC”;
// let boo = Boolean(str); //把str的内容转换成布尔值返回
// console.log(boo); //true

// 判断语句
// 书写格式:if(条件){}
// let F70 = 200;
// if (F70) {
// console.log(“F70 is true”);
// } else {
// console.log(“F70 is false”);
// }

//数值类型转换

//【强制转换数值】
// let str = “123”;
// let num = Number(str);
// console.log(num, typeof num); //123 number

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

// str = false;
// num = Number(str);
// console.log(num, typeof num); //0 number

//快捷转换数值类型方式【隐式转换】
// let str = “200abc”;
// let num = str - 0;
// 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

运算符
//【运算符】
//[一元运算符]
/**

  • 原理:++在前,先自增,再使用
    /
    // let num1 = 1;
    // let num2 = ++num1;
    // console.log(num2:${num2}); //2
    // console.log(num1:${num1}); //2
    /
    *
  • 原理:++在后,先使用,再自增
    /
    // let num1 = 1;
    // let num2 = num1++;
    // console.log(num2:${num2}); //1
    // console.log(num1:${num1}); //2
    /
    *
  • 自减原理:–在后,先使用,再自减
  • 自减原理:–在前,先自减,再使用
    */
    // let num5 = 100;
    // --num5;
    // console.log(num5); //99
    //注:只有自增、自减在表达式中,才考虑先后顺序。

//[算数运算符]
let i = 1;
let j = 2;
let k = i + j;
console.log(k); //3
k = i - j;
console.log(k); //-1
k = i * j;
console.log(k); //2
k = i / j;
console.log(k); //0.5
k = i % j;
console.log(“F70:”, k); //1

//算数运算符【简写方式】
// k = k+3;
// k+=3;
// k = k-3;
// k-=3;
// k = k3;
// k
=3;
// k = k/3;
// k/=3;
// k = k%3;
// k%=3;
比较转换
undefined是由null衍生而来
NaN不等于任何值包括它自己(判断是不是非数字使用:isNaN() )
字符串是按位比较
转换布尔值 例如:F71=!(!F70)
//【运算符】
//[一元运算符]
/**

  • 原理:++在前,先自增,再使用
    /
    // let num1 = 1;
    // let num2 = ++num1;
    // console.log(num2:${num2}); //2
    // console.log(num1:${num1}); //2
    /
    *
  • 原理:++在后,先使用,再自增
    /
    // let num1 = 1;
    // let num2 = num1++;
    // console.log(num2:${num2}); //1
    // console.log(num1:${num1}); //2
    /
    *
  • 自减原理:–在后,先使用,再自减
  • 自减原理:–在前,先自减,再使用
    */
    // let num5 = 100;
    // --num5;
    // console.log(num5); //99
    //注:只有自增、自减在表达式中,才考虑先后顺序。

//[算数运算符]
// let i = 1;
// let j = 2;
// let k = i + j;
// console.log(k); //3
// k = i - j;
// console.log(k); //-1
// k = i * j;
// console.log(k); //2
// k = i / j;
// console.log(k); //0.5
// k = i % j;
// console.log(“F70:”, k); //1

//算数运算符【简写方式】
// k = k+3;
// k+=3;
// k = k-3;
// k-=3;
// k = k3;
// k
=3;
// k = k/3;
// k/=3;
// k = k%3;
// k%=3;

// let F70 = 123;
// console.log(F70); //123
// F70–;
// console.log(F70); //122

// F70 = “123a”;
// F70–;
// console.log(F70); //NaN

/**

  • [比较运算符] 返回的布尔值
  • 大于 >
  • 小于 <
  • 等于 ==
  • 大于等于 >=
  • 小于等于 <=
  • 不等于 !=
  • 全等 ===
  • 不全等 !==
    */

// let i = 1;
// let j = 2;
// console.log(i == j); //false
// let k = “2”;
// console.log(j == k); //true

// console.log(i == true); //true
// console.log(i == “1”); //true
// i = 0;
// console.log(i == false); //true
// i = undefined;
// console.log(“un1”, i == false); //false
// console.log(“un2”, i == 0); //false
// i = null;
// console.log(“null1”, i == false); //false
// console.log(“null2”, i == 0); //false

// console.log(null == undefined); //true
//undefined是由null衍生而来

// let account1 = “F70”;
// let pwd1 = false;
// let inputAccount = “F71”;
// let inputPWD = 0;
// console.log(inputAccount == account1); //false
// console.log(inputPWD == pwd1); //true

//NaN不等于任何值,包括它自己
//注:判断是不是非数字使用:isNaN()
// console.log(NaN == 123); //false
// console.log(NaN == “abc”); //false
// console.log(NaN == false); //false
// console.log(NaN == true); //false
// console.log(NaN == undefined); //false
// console.log(NaN == null); //false
// console.log(NaN == NaN); //false

//字符串比较是按位比较(非数字比较ASC码)
// console.log(“a” < “b”); //true
// console.log(“c” > “b”); //true
// console.log(“c” > “C”); //true

// console.log(“123a” > “123b”); //false
// console.log(“123a” > “113b”); //true
// console.log(123 > “123a”); //false 与NaN都是false

//全等:值和类型都要相同才返回true
// console.log(123 == “123”); //true
// console.log(123 === “123”); //false

//[逻辑运算符]

/**

  • 非 与 或
  • 非 书写格式: !表达式/标示符
  • 功能:取反

*/

// console.log(!true); //false
// console.log(!123); //false
// console.log(!null); //true
// console.log(!1 + 2); //2

//[与运算] && 一假全假
/**

  • 【扩展工作原理】
  • 情况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 && false && true); //false

// //[或运算] || 一真全真
// console.log(false || false); //false
// console.log(false || false || true); //true

/**

  • 【位运算符】
  • | 和 &
  • 先把表达式内容转换二进制,按位运算后再转十进制输出
  • 十进制 二进制 十进制
  • 1 01
  • 2 10
  • |运算 11 3
  • 1 01
  • 2 10
  • &运算 00 0
    */
    // console.log(1 || 2); //1
    // console.log(1 && 2); //2

// console.log(1 | 2); //3
// console.log(1 & 2); //0

//【三目运算符】
// 书写格式: 表达式1(条件) ? 表达式2 : 表达式3;
console.log(请输入第1个数字:);
let inputNum1 = rs.question() - 0;
console.log(请输入第2个数字:);
let inputNum2 = rs.question() - 0;
// inputNum1 > inputNum2
// ?
// console.log(您输入的两个数中最大值为:${inputNum1})
// :
// console.log(您输入的两个数中最大值为:${inputNum2});

console.log(请输入第3个数字:);
let inputNum3 = rs.question() - 0;

(inputNum1 > inputNum2 && inputNum1 > inputNum3) ?
console.log(inputNum1):
(
inputNum2 > inputNum3 ?
console.log(inputNum2) :
console.log(inputNum3)
);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值