首页 > 代码库 > JS 2
JS 2
1、使用JS
1、运行环境
1、独立的JS解释器(NodeJS)
2、浏览器内核中嵌入的JS解释器
1、浏览器 Console 中直接输入脚本
2、将JS嵌入在HTML页面中执行
1、元素事件中
<ANY onclick="">
console.log("输出的内容");
2、<script></script>元素中
<script>
document.write("输出在页面的内容");
注意:该内容是被内容排版引擎解析
</script>
3、外部脚本文件
1、创建 .js 文件
2、引入js文件
<script src="http://www.mamicode.com/xxx.js"></script>
window.alert("");
alert("");
2、变量和常量
1、变量
1、what
内存中的一段存储空间
2、变量的声明
var 变量名;//声明
变量名=值;//赋值
//声明并赋值
var 变量名=值;
//一次性声明多个变量并赋值
var n1,n2=25,n3,n4;
3、变量名规范
1、不能是JS关键字和保留关键字
2、包含 字母,数字,下划线,"$"
3、不能以数字开头
4、变量的使用
1、声明变量未赋值
值默认为 undefined
2、使用未声明过的变量
console.log(userName);
报错
3、对变量进行的存取操作
1、存 - SET
= : 赋值符号
变量出现在 = 的左边,一定是赋值
var num1 = 12;
var num2 = 21;
num1=num1+num2;
console.log(num1);
2、取 - GET
只要变量不出现在=的左边,都是取值操作
var num1 = 12;
var num2 = num1;
console.log(num1);
2、运算符
算术运算符:+,-,*,/,%
1、%
作用:取余数
场合:
1、判断奇偶性或算倍数
2、获取某数字的最后几位
2、+
作用:
1、做数字的 加法 操作
如果 + 两边的数据都是数字类型则做 加法操作
2、做字符串的 连接 操作
如果 + 两边的数据有一个是字符串类型的则做的就是 连接操作
3、常量
1、what
一旦声明后,在程序运行过程中不能被修改的数据叫做常量
2、语法
const 常量名=值;
注意:通常常量名采用全大写模式
3、使用
const PI = 3.14;
PI = 31.4; // 报错
3、数据类型
1、what
保存在内存中的数据的类型
决定了数据在内存中所占的空间大小
2、分类
1、基本数据类型(原始类型)
1、number类型
数字类型:
表示 32 位的整数(4字节)
表示 64 位的浮点数(8字节)
整数:
十进制:var n1 = 123;
八进制:var n2 = 0123;
十六进制:var n3 = 0x12FA;
小数:
小数点表示法:var f1 = 123.456;
指数表示:var f2 = 123.4e10;
2、string类型
字符串类型:
表示一系列的文本字符数据
由Unicode字符、数字、标点组成
Unicode:
1、每个字符 都有一个 独立编码
"我".charCodeAt() : 返回Unicode码的十进制表现形式
"我".charCodeAt().toString(2)
返回Unicode码的二进制表现形式
"我".charCodeAt().toString(16)
返回Unicode码的十六进制表现形式
通过 Unicode码 打印字符:
console.log("\u4e00");
2、每个字符 都占据 2字节
转义字符:表示JS中的特殊字符
\n:换行
\r:回车(接收指令而非换行)
\t:制表符
\‘:‘
\":"
\\:\
3、boolean类型
布尔类型:表示真或假的一种结果
只有两个值:
1、true:真
2、false:假
实际运算中:
true 当做 1 运算
false 当做 0 运算
4、undefined类型
语义:访问的数据不存在
产生undefined的场合
1、声明变量未赋值
2、访问不存在的对象的属性
2、引用数据类型
==========================================
1、数据类型的转换
2、运算符和表达式
==========================================
1、数据类型转换
1、弱类型
由数据来决定数据类型
var num;//undefined
num=12;//number
num="你好";//string
num=false;//boolean
强数据类型:由数据类型来决定数据
1 、typeof() 函数
作用:获取指定数据的数据类型
语法:
typeof(变量) 或者 typeof 变量;
使用:
var result = typeof(变量);
2、隐式转换
不同类型的数据在计算过程中会自动进行转换
特点:
任何一种数据类型的数据,再与string做“+”运算时,都会转换成 string,再做连接
NaN : Not a Number , 不是一个数字
函数:isNaN(数据)
作用:判断数据是否为 非数字类型(只判断数值,与类型无关) ,如果是非数字,返回true,是数字返回false
问题:将字符串25转换为 数字25,再做加法运算
3、强制转换(显示转换)
由JS提供的一组转换函数来完成数据类型的转换
1、toString()
转换成字符串,任一数据类型的数据均可转换为string类型
语法:数据(变量).toString()
2、parseInt(数据)
将数据转换为number类型(整数)
碰到第一个非整数字符,则停止转换
如果无法转换时,转换的结果为NaN
3、parseFloat(数据)
将数据转换为number类型(小数)
碰到第一个非小数点或数字字符,则停止换换
4、Number(数据)
将一个数据解析为number类型
注意:如果数据中包含非法字符,则返回NaN
Number("25") : 25
Number("25.5") : 25.5
Number("25.5abc") : NaN
2、运算符和表达式
1、运算符
做数据的运算
2、表达式
由运算符和操作数所组成的式子,称之为表达式
var a = 5;//赋值表达式
var b = 10;//赋值表达式
a+b;//算术表达式
注意:每一个表达式,都有值
console.log(a+b);
b=a=a+b;
console.log(a=a+b);
3、运算符分类
1、算术运算符
+,-,*,/,%
ex:
1、
var a="15";
var b="13";
var result=a-b;//2
注意:
-,*,/,%
如果两边的操作数不是number类型,会试图通过 Number()先进行转换,如果无法转换成Number类型,结果则为NaN
++(自增),--(自减)
++:在自己值的基础上做加1操作
--:在自己值的基础上做减1操作
var num=5;
num++; 作为后缀,先去使用变量的值,然后对其进行自增操作
++num; 作为前缀,先对变量进行自增操作,然后再使用变量的值
优先级:
先*,/,%,再+,-
想提升优先级:()
ex:
1、var result=35+2*18/3+12/6%4
=35+12+2 = 49
2、var result=(35+2)*(18/(3+3))/6%4
=37*3/6%4
2、关系运算符
1、运算符
>,<,>=,<=,==(判断等于),!=
===(全等),!==(不全等)
=== 与 ==的区别:
1、==
只判断数值,不判断类型
"35"==35 结果为 true
2、===
判断 类型以及数值 是否都相等
"35"===35 结果为 false
由关系运算符组成的表达式称之为关系表达式,关系表达式的结果都是boolean类型
2、特殊注意
1、字符串 和 数字比较大小关系时
先将字符串通过Number()转换成数字再进行比较
2、字符串 和 字符串比较大小关系时
实际上是比较每位字符的Unicode码
张三丰
张无忌
3、NaN参与关系比较时,结果一律为 false
3、isNaN 函数
判断一个数据是否为非数字
isNaN()
3、逻辑运算符
1、作用
多条件之间的判断关系
2、逻辑运算符
逻辑非 : !
逻辑与 : &&
逻辑或 : ||
逻辑与:
判断两个条件,如果两个条件的值都为true的话,整个表达式的结果为true,如果有一个条件的结果为false,整个表达式的结果就为 false
ex:
如果 笔试成绩 大于60分,并且面试成绩 也大于 60分,可以入职。
逻辑或:
判断两个条件,两个条件中,有一个条件为true,那么整个 逻辑或 的结果就为 true,否则为 false(两个结果同时为false时)
逻辑非:
对现有条件结果进行取反
非真即假
非假即真
练习:判断是数字?是英文字符?是汉字?
var num=prompt("input....");
思路:判断num的所在范围
1、num在 字符 0 到 字符9之间,说明是数字
2、num在字符a到字符z或者在字符A到字符Z之间,说明是英文
3、num在字符 \u4e00 到 \u9fa5 范围内,说明是 汉字
3、短路逻辑
1、&&(短路与)
如果第一个表达式的结果为false,那么第二个表达式就不用再判断,整个表达式的结果为 false
如果第一个表达式的结果为true的话,则继续判断第二个表达式的结果,并且以第二个表达式的执行结果作为整个逻辑表达式的结果。
2、||(短路或)
如果第一个表达式的结果为true的话,那么就不在继续执行第二个表达式,并且将 true作为整个逻辑表达式的结果。
如果第一个表达式的结果为false的话,则继续执行第二个表达式,并且将第二个表达式的计算结果作为逻辑表达式的结果
4、位运算
1、特点
1、做数字运算
2、将数字转换为二进制,再进行运算
2、运算符
1、&
按位 与,将两边的操作数转换成二进制,每位的数字,只有对应都为1的时候,该位的结果才为1,否则该位的结果就是0
ex:
5 & 3 ?
5:101
3:011
-----------
r:001
作用:判断一个数字的奇偶性,判断的数字与1做按位与
5 & 1?
5 :101
1 :001
-----------
1
2、|
按位或,两边的操作数转换成二进制,比较每位上的数字,两个数中有1个是1的话,该位的结果为1,否则为0
场合:向下求整
求:5 | 3
5:101
3:011
=========
111
6.5 | 0
==>
6 | 0
6:110
0:000
3、<<
按位左移,将2进制数向左移动几位,后面以0补齐
ex:
2<<1 : 4
2<<2 : 8
2<<3 : 16
0000 0000 0000 0000
0000 0000 0001 0000
4、>>
按位右移,将2进制数向右移动几位,前面补0
8>>1 : 4
0000 0000 0000 0000
0000 0000 0000 0100
8>>2 : 2
8>>3 : 1
8>>4 : 0
5、练习
计算克莱托指数(身高体重比)
公式如下:体重(kg) / (身高(m)*身高(m))
20-25 : 正常
25以上:偏胖
20以下:偏瘦
ex:
体重:85
身高:1.81
指数=85/(1.81*1.81);//25.945483
JS 2