前端学习第五周-js基础,定义变量,数据类型,基础数据的显式转换和隐式转换,以及运算符
时间:2022-11-29 19:00:00
文章目录
- 前言
- 一、 变量
-
- 1.定义变量
- 2.数据类型
-
- 1.string字符串
- 2.Boolean
- 3.number
- 4.null
- 5.undefined
- 二、基础数据识别转换
-
- 显式转换
-
- 1.将其他类型转换为字符串
-
- 1. ` ` 连接符 ///在不同类型的背面连接一个空串
- 2.toString() //null和undefined不适用
- 3.String()
- 2.其他类型转换为数字
-
- 1.number() ///需要纯数字字符串或科学计数法e
- 2.parseInt() 3.parseFloat //字符串必须从数字开始才能提取数字
- 3、其他的类型转换成boolean
- 隐式转换
-
- 1.inNaN()
- 2. 自增 --自减
- 3. 正号 -负号
- 4.- * / %
- 运算符
前言
本周花了三天时间写作html和css所以学习新知识只有两天,掌握了js基本属性。
一、 变量
1.定义变量
es5:
<script> var bianLiangMing=123; console.log(bianLiangMing); </script>
命名规则:
1.$ _ 数学 字母不能从数字开始
2.不能用关键词来保留单词(现在不是关键词,但将来可能会成为关键词)
3.最好使用驼峰命名法或下划线
es6:
新增了let const
区别:
1.var变量提升,let和const没有
2.var变量可以重复定义,let和const不能重复定义
3.let和const定义的变量具有块级作用域,var不能有块级作用域
4.const定义的变量值是常量,不能重新赋值
直接输入biaoLiangMing = 二、定义为全局变量
var biaoLiangMing = 二、定义为局部变量
2.数据类型
基础数据类型 5 1种
string number Boolean null undefined symbol
栈内存:连续结构,先进后出的特点
引用(复杂)数据类型 1种
Object{Array,Function,arguments,Set}
堆积内存:树状结构不连续
值传递/地址传递
// 值传递
// var num1 = 1; // var num2 = num1; // num2 = 3; // console.log(num2); // console.log(num1);
// 址传递
// var lpz = {
// name:'zsj', // weight: '88' // } // var lzz = lpz; // console.log(lzz);//输出name:'zsj',weight: '88' // lzz.name = 'lzz' // lzz.weight = '100' // console.log(lzz);//输出name:'lzz',weight: '100' // console.log(lpz);//输出name:'lzz',weight: '100'
查看检查变量的数据内型
console.log(typeof str);
console.log(typeof(str));
1.string字符串
es5
字符串的不可变性:它不会覆盖以前的值,并将打开一个新的位置
如果两端的一侧是字符串,两侧的内容将被迫转换为字符串
拼接另一种函数方法
- * /
如果两端的一侧是数字,则两侧将转换为数字number
var str1 = str2.concat(str3,str4)
//str2 str3 str4
es六字符串模板量
var str = `bianLiang Ming`; //可直接使用回车键
var a =
5
;
var str3
=
`abcd${
a}efgh}`
//可以直接拼接
2.Boolean
true 和 false 两个值
3.number
var num =123;
Infinity 无限大
not a Number = NaN
console.log(Number.MAX_VALUE);
console.log(Number.MIN_VALUE);
var total = 0.1 +0.2; --0.300000004 //会产生精度丢失
var total = 0.555;
console.log(total.tofixed(2)); --0.56 //四舍五入,括号中为小数点后位数
4.null
null == === != 就不为0,其他情况就当成0
5.undefined
var nu1 = undefined;
出现undefined
1.定义某一个变量,但是并未赋值
var un1;
console.log(un1)
2.直接检测类型
console.log(typeof a)
3.函数内部,形式参数未传参
4.函数无返回值
console.log(null==undefined);--true
console.log(null===undefined);--false
最大的区别就是和数字加减时,null看成0,结果等于相加的数字;undefined相加数字,结果为NAN
查看赋值
var a = b = c = d = 10;
运行步骤
var a;
a = b = c = d = 10;
d = 10;
c = d;
b = c;
a = b;
二、基础数据辨别转换
typeof无法检测null和数组
判断是否为数组
console.log([1,2,3] instanceof Array);//如果是数组返回true 不是则false
console.log([1,2,3] instanceof Object);//也可以检测数组,因为数组属于对象
显式转换
1.其他类型转换成字符串
1. +
连接符 //在不同类型后面连接一个空串
var str1 = 123 + ‘’;
console.log(str1);
2.toString() //null和undefined不适用
var num = 123;
var str2 = num.toString();
console.log(str2);
可以进行进制转换
var num = 100;
var str2 = num.toString(2);
输出1100100 --对于number类型,toString()括号中的数字,代表转换成几进制
3.String()
var temp =123;
var str3 =string(temp);
console.log(str3);
//这三种方法转换对象类型,转换成字符串都会显示为object
2、其他类型转换成数字
1.number() //需要纯数字的字符串,或者科学计数法e
var temp = ‘124e21313’;
var num = number();
console.log(num);
2.parseInt() 3.parseFloat //字符串一定要以数字开头才能提取数字
var temp = ‘124dsgd’;
var num = parseInt();
console.log(num); --输出124
var temp = ‘dsgd124dfg’;
var num = parseInt();
console.log(num); --输出NaN
var temp = ‘105dsgd’;
var num = parseInt(temp,2);
console.log(num);//只取10
//原理 第一步调用tostring
//一定要注意第二个参数,是把提取的数当成对应的进制,再转换成十进制返回出来
//超出七位小数会通过科学计数法表示,提取整数时会识别小数后的第七位
3、其他的类型转换成boolean
var temp = ‘123’
var bool = Boolean(temp);
console.log(bool);
//字符串转换时,空串是false,其他情况都是true
var temp = 1;
var bool = Boolean(temp);
console.log(bool);
//number转换时,0是false,其他都是 ture
var temp = {};
var bool = Boolean(temp);
console.log(bool);
//object转换时,都为true(包含数组)因为对象中会存储地址
String number boolean 对应基础数据的包装类型
隐式转换
1.inNaN()
var temp =123;
var bool = isNaN(temp);
console.logaa(bool);//NaN的返回值为true
原理:其他的类型先调用number()方法,看是否能转化成数字
isNaN():是数字返回false;不是数字的时候返回ture
2.++自增 --自减
var temp =‘11’;
var temp2 = temp++;
console.log(temp);–>12
console.log(temp2);–>11
//++:变量在前先赋值再加,变量在后,先加再赋值
//–:变量在前先赋值再减,变量在后,先减再赋值
3. + 正号 -负号
var temp = true;
var temp2 = +temp;
console.log(temp2);–>1
4.- * / %
运算符
1.算数运算符 ±*/%
2.自增自减运算符++ –
3.一元运算符 ± typeof
4.逻辑运算符 && || !
&&并且 所有项都是true,则返回最后一个true值的原始值
如果其中的遇到的值为false,则输出false,后面的值不再执行
|| 或 所有项都是false执行到最后,输出false
如果其中的遇到的值为true,则输出true,后面的值不再执行
! 取反
5.赋值运算符 = += -= *= /= %=
var num = 1;
num+=1;
=>num=num+1;
//x==;
//=>x =number(x)+1
6.比较运算符> >= <= == === !==
错误的写法
if(10
if(10
===:全等,值相等,类型也要相等
引用类型 == ===先去调用tostring()
!的优先级比tostring()的要高
7.三元运算符
表达式?表示1:表示式2