优秀的编程知识分享平台

网站首页 > 技术文章 正文

目前最火Javascript脚本语言,追了八年的女神都开始学js啦~

nanyue 2024-07-22 14:14:15 技术文章 21 ℃

六大数据类型

Number ==> 数字

String ==> 字符串

Boolean ==> 布尔值

function ==> 函数

undefined ==> 未定义.值就是undefined

Object ==> 对象

其中前五个叫原始数据类型,最后一个对象叫对象类型,所以js面向对象式的编程模式,除了null和undefined

Number数字

js不分整型和浮点数(小数)

范围:-2^53 ~ 2^53,超过低位精度就会不准确,某些浮点数就会产生不准确

0.8 - 0.1 = 0.7000000000000001

0.3 - 0.1 = 0.19999999999999998

Number方法

CommentDescription
Number()构造函数,参数中必须能被转换成数字,否则返回NaN
parseInt()讲字符串转换为数字,遇到不是数字就停
parseFloat()遇到不是数就停,保留小数
Num.toFixed(2)四舍五入保留两位小数,返回字符串

NaN

Not a Number 他们自己都不等于自己,NaN的数据类型就是Number 一个空对象也不等于空对象

var n = 1 + undefinedalert(isNaN(n));// true// 判断n的值是否等于nalert(n==n);// false 他们自己都不等于自己 NaN的数据类型就是Number

Math数学函数

MethodDescription
Math.pow( 16, 2 )十六的平方 256
Math.round( 0.52 )四舍五入
Math.ceil( 0.1 )向上取整1,ceil天花板·上
Math.floor( 0.9 )向下取整0,floor地板·下
Math.max( 9, 8, 7 )取最大数9
Math.min( 0, 1, 5 )取最小数0
Math.random()生成一个0-1伪随机数,没参数
Math.random() * 30 + 20生成20-50的随机数

Number没有length属性取长度方法

String字符串

字符串有引号(单双皆可,但需对应)括起来,来个字符串可以用 + 来拼接起来

MethodDescription
str[0]取字符串索引,从0开始,IE8+
str.charAt(0)去字符串索引,从0开始,支持所有
toString()转换为字符串
str.substring(5, 1)从2开始取到第5位,小于会交换位置,负数为0
str.slice(5, 1)取不到会为空,不会交换位置,负数倒着数
str.indexOf('slice', 5)查找文本,从第5位开始查找,成功返回索引否则返回-1
str.split(' ')用空格分割,返回数组
str.tuUpperCase()['?p?]全部转换大写,无参
str.toLowerCase()['l???]全部转换为小写,无参
str = 'abcdslice'alert(str.substring(2, 6)) // 从第二位开始 取到第六位alert(str.substring(6, -2))// 负数为0,小的参数会放在前面,0-6alert( str.indexOf("slice", str.indexOf('slice')+1) ); // 查找两次var str1 = "username----password|abcd----1234";var arr = str1.split('|');
arr[0] // 第一组账号数据 username----passwordarr[1] // 第一组账号数据 abcd----1234 账号密码再分离就再通过“----”切

Boolean布尔值

当要判断一个值是否等于另一个只就会使用到布尔,因为只有两个值true/false 真真/假假 是和不是 好和不好 相等和不相等

  • undefined

  • null

  • 0和-0

  • NaN

  • ""

以上五个在做条件判断的时候都为假,其余都为真,包括空对象、空数组

Boolean转Number ==>true为1、fasel为0

var a = 4;if (a==4) {
 alert( "a=4" )
}// if () 括号里为判断条件,条件为真就会执行后面花括号里的代码if( "false" ) {
 alert(true);
}if ( !false ) { // 感叹号! 非的意思,如果为真则取反为假反之为真、
 alert(true);
}if () {
} else if () {
} else if () {
} else {
}var a = 4;if (a == 2) {
 alert(2);
} else if(a == 4) {
 alert(4);
} else {
 alert('既不等于四,也不等于二');
}// 空数组和 空对象都转化为true 有值也一样alert(Boolean({}))
alert(Boolean([]))

null和undefined

  • null == undefined 返回true 在做条件判断的时候都为假 假和假相等

  • null是一个keyword关键字,类似于正确空值的填补,undefined是预先定义好的全局变量不是关键字,变量声明没有赋值也是undefined,值就是undefined没有定义,类似于一个错误空值的填补

  • null转Number为0,undefined转Number为NaN;

  • 1 + undefined = NaN; // 会强制转换为数字进行计算 1 + NaN = NaN;

    1 + null = 1; // 1 + 0 = 1;

Array数组

var arr = [0, 1, 2]; 
alert(typeof arr); // Object,无法确认

判断是否为数组:typeof返回的结果是Object对象,无法判断准确

MethodDescription
Array.isArray(arr);返回true是数组
arr.join("== 字符串 ==")0== 字符串1字符串 ==2

js运算符

DescriptionSign[sa?n]
运算符+ - * / %磨余
赋值操作符= += -= /= %=

能被计算才会执行计算,不能计算则会出现各种问题(报错 or NaN ...)

  • 主要值与值之间相加,其中有一个字符串则就是字符串的拼接

  • 布尔值和数字计算:true = 1,false = 0

  • -* / % 会强制转换为数字进行计算

练习

var a = 3;
a += "2"; // a = a + "2"; 32a -= "2"; // a = a - "2"; 30 强制转换Numbera++; // 30+1 自己增加1,没有自己增加2...的符号写法alert(a); // 31a--;
alert(a); // 30var b = a++; // alert(a); // 31alert(b); // 30 因为是先把a变量的值赋给b,然后原来的a变量再自增1var c = ++a;
alert(a); // 32alert(c); // 32 先自己增加一次,然后再赋值给c

判断条件符号

> < == <= >= !=不等于 ===恒等于(还会判断数据类型) !== 不全等

逻辑运算符

// 逻辑运算符
 && || !
 与 或 非
 和 或 取反
 & | 单位符号是位操作,这里不阐述

&&与 条件练习

var a = 5 < 2 && 4 < 5// 遇到假就停,短路设置,一开始为假直接返回false、

||或 条件练习

var a = 1 > 2 || 2 > 3 || 8;// 遇到真就停,短路设置,一不大于二false,二不大于三false,8没有判断符号转换布尔来进行判断true/false// 除了0以外的数都为真;

非练习

var a = !false; // true

警告窗

var a = function() {
 alert(666);
}
alert(a); // 弹出函数一整块var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
alert(arr);// 弹出1,2,3,4,5,6,7,8,9var obj = {name: "slice"};
alert(obj); // 弹出[object Obejct]

控制台打印日志

console.log("This is Console Print");

for循环

for(var i=0; i<100; i++) { // 标准写法,i变量声明可以拿出去 第三个执行的操作也可以拿到里面去写
 console.log(i); // 0-100上面 声明变量必须要赋初始值0 否则undefined进行计算会变成NaN
 } 
 for(var key in document) { console.log(key +"======"+document[key]); // 查看document里面所有的方法
 }

流程控制语句

if ( 10>1 ) {
 	alert(1);
 }else if( 5<50 ){
 	alert(2);
 }else if( 10>20 ){
 	alert(3);
 } // 只有一条真语句
 if( 8 > 0 ) alert('This is 8 > 0'); 
 // 三目运算符(只有一条真语句和只有一条假语句的时候)
 var a = 10>1 ? 2 : 5;// 变量写在里面会报错

循环语句控制

// continue到循环尾for(var i = 0; i<10; i++) { if(i==5) continue; console.log(i);
}// Break跳出循环for(var i = 0; i<10; i++) { if(i==5) break; console.log(i);
}

switch循环

switch ( username ) { case "yoona":
 alert( username+'老师,很帅' ) break
 case "威":
 alert( username+ '老师:女神!' ) break
 case "蛋":
 alert( username + "老师,很萌" ) break
 case "薰":
 alert( username + "老师,很厉害" ) break
 default:
 alert( "没有这位老师" ); break;
}

Tags:

最近发表
标签列表