JS基础笔记整理

JS基础

笔记整理

【专业术语】

1.语句:JS中用分号来结束一条语句
例子 :var i = 1 ;
关键字 标识符 赋值符 变量 ;
关键字:声明/创建
标识符:变量、函数、数组、对象、集合…

创建变量的方式

ECMA Script 定义JS的规则
两大类 ES5 ES6

var 声明的变量,可以重复
let和const 不可以重复声明
如果重复声明 会报错
let 和const的区别 【数据类型进行内容添加】
let是声明变量
const是声明常量
注:如果是——引用数据类型,存储的是地址。
因此,地址里的数据可以发生变化。

【报错】

1.重复声明
2.const 声明 未 赋值 然后再赋值
3.使用未声明过的标识符
*/

// const F = 200;
// F = 500;
// let F = 300;
// console.log(F);

/*

【标识符的命名规范】

1.硬性要求
①可以是数字、字母、下划线、$符号(不允许其他特殊符号)
②不能数字开头
③不能使用关键字和保留字
④区分大小写

2.软性要求:见名知意
*/

/*

【标识符的书写形式】

1.大驼峰命名法:单词首字母大写
2.小驼峰命名法:除了第一个单词,其他首字母大写(推荐)
3.蛇形命名法:每个单词之间加个下划线_
4.匈牙利命名法:数据类型_数据变量名
let S_account;
let N_balance;
*/

/*

【数据类型】

1.基本数据类型
string:字符型
number:数值型
Boolean:布尔型 (true真、false假)
null:取值null
undefined:取值undefined(变量声明未赋值)
symbol:(讲对象时,补充)
2.引用数据类型
object
*/

// let act = “z3”;
// console.log(typeof act);//string
// let pswd = 123;
// typeof 变量:查看变量类型
// console.log(typeof pswd);//number
// let balance = 100;
// console.log(typeof balance);//number

// 【作用域】变量的使用范围

// 1.全局作用域
// 创建的变量时全局变量,能够在全局使用

// 2.局部作用域
// 创建的变量时局部变量,只能在声明的局部作用域和它嵌套的作用域里使用

// 注:
// 1.大括号外就是全局作用域,里面就是局部作用域,里面的里面就是局部作用域的嵌套作用域
// 2.局部作用域中(除函数),var声明的变量会自动提升为全局变量

// 【扩展】暂时性死区 (先使用后声明)
// console.log(xiaoliu);
// let xiaoliu = 123;
// var变量会自动去第一行 var变量会自动提升

// 【扩展】js弱类型语言
// 变量的类型取决于赋值的类型

数据类型

// 【String的类型】
// 1.单引号’’
// 2.双引号""
// 3.字符串模板``(推荐)

// 适用场景:输出的文本内容(字符串模板可以引用变量的值)

// let t1 = ‘abc’
// console.log(t1+“欢迎来到银行”);
// let t2 = “def”
// let t3 = ghi
// console.log(${t3} wellcom to bank'嗨'"尼玛");

/*
【undefined】
取值:undefined

注:
1.标识符声明未赋值
2.typeof 看未声明标识符
*/

/*
【null】 空
取值:null
let xiaoming = null;
console.log(typeof xiaoming);//object 它是空对象
*/

/*
【Boolean】
取值:true 、 false
适用场景:判断条件、状态值
*/

/*
【Number】
取值:整型、浮点型(小数)、NaN(非数字)
注:
1.NaN: is not a number;不是数字,但是数值型
2.NaN和任何值比较都不相等(包括自己);

判断变量的值是不是非数字:isNaN(变量名)
返回true(非数字)或false(纯数字)

适用场景:当需要进行运算时
判断用户的输入、判断变量

let x = 1;
console.log(x);

x = “abc”
console.log(x-1);//NaN

console.log(NaN == NaN); //false

补充:
[parseInt:取整]
格式:parseInt(变量名)
取第一个非数字之前的数字
若第一个就是非数字返回NaN

let str = “100.1”;
let num = parseInt(str);//取整
console.log(num);//100

str = “1asjd2234”
let num = parseInt(str);//取整
console.log(num);//1

str = “aasjd2234”
let num = parseInt(str);//取整
console.log(num);//NaN

判断用户输入是否纯数字
let num = “123a”;
console.log(parseInt(num) == num);
isNaN(!‘sdfasdf’){

}

[parseFloat:获取浮点数]
格式:parseFloat(变量名)
获取第一个小数点后非数字前的浮点数
小数点前纯数字

[保留小数位:toFiexd (默认四舍五入)]
书写格式:变量名.toFixed(保留的小数位)
注:变量类型须为Number

报错:若变量类型不是Number则报错
变量名.toFixed is not a function

[变量名.toString]转换为字符类型
适用于Number和Boolean

null 和 undefined 会报错
Cannot read property ‘toString’ of null(undefined)
不能读取null或undefined的toString方法
*/

// --------------------
// 只保留整数: parseInt(3.1415926); // 3
// 向下取整: Math.floor(3.1415926); // 3 就是取整数
// 向上取整: Math.ceil(3.1415926); // 4 只要有小数 整数就+1
// 四舍五入: Math.round(3.1415926); // 3
// 取绝对值: Math.abs(-8); // 8
// 返回两数中的大者: Math.max(3,5); // 5
// 返回两数中的x小者: Math.min(3,5); // 3
// 随机数: Math.random();

// -----------------------------
/*
【数据类型转换】
1.强制转换(手动)
书写格式:
数据类型(标识符)
例如:Number(变量名); // 转换数值类型
2.隐式转换(自动)

算数运算符 会把运算符左右的变量 转换为数值类
注:加号左右存在字符串类型,则进行拼接

let str = “a123”
let num = str * 10
console.log(typeof num, num);//NaN

if(“abc”){
console.log(“f”);
}
*/

/*
判断条件转换成Boolean
false:
-0
空字符串 ‘’ “” ``
null
undefined
false
NaN
注:其他都会转换成true
*/

/*
【运算符】
1[赋值运算符:=]
标识符 = 值或表达式或标识符;
把值或表达式赋予标识符

2.[一元运算符]
[++]自增 [–]自减
运算符在前 先赋值,再使用
-----在后 先使用 再赋值

// let num = 10;
// console.log(num++);
// console.log(num);
// console.log(++num);

[+=] [-=] [*=] [/=] [%=]

3.[判断运算符]

4.[逻辑运算符] Boolean类型
! 逻辑非 取反

短路运算符 && ||
&& 逻辑与 一假全假
工作原理:A && B && C && D
打假-A为T 返回 B ;A为F 返回A 一旦找到 就不管后面的
|| 逻辑或 一真全真
工作原理:A && B
判断A是T 返回A ;为F 返回B 找寻真理
*/

/*
快速转布尔和字符串
let F72 = 0;
console.log(F72 - 0); //Number
console.log(F72 + ‘’); //String
console.log(!!F72); //Boolean
*/

// if (0 && 2) {
// console.log(“f”);
// }

// let year;

// (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;

/*
5.[位运算符]
& 与
| 或
十进制转二进制通过计算,再转为十进制console
*/

/*
[三目运算符] ?
格式:
条件 ? 表达式1 ;: 表达式2;
功能:条件为T ,执行表达式1
条件为F ,执行表达式2
*/
// 接受用户输入的3个值 请输出最大值或最小值
// let iN1 = 0, iN2 = 2, iN3 = 0;
// let max =
// (iN1 > iN2 ? iN1 : iN2) > iN3 ? (iN1 > iN2 ? iN1 : iN2) : iN3;
// // max = (iN1 > iN2 && iN2 > iN3) ? iN1 : (iN2 > iN3 ? iN2 : iN3)
// console.log(max, min);

// 【获取用户的输入】
// const rs = require(“readline-sync”);
// console.log(请输入您的账号:);
// let inputStr = rs.question();
// console.log(你输入的账号:${inputStr});

// [扩展]
// 非纯数字是可以比较的
// 工作原理:按位比较,相等的话比较第二位
// 比较的是非数字ASCII码

// let a = “2a”;
// let b = ‘1b’;
// console.log(a > b);

// let x= “124723.4afad9”
// console.log(parseFloat(x));
// let F72 = 1;
// console.log(!F72); //Boolean

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值