JavaScript 笔记

一、数据基本类型

typeof

检测变量中储存的数据的具体类型

Number

数值类型,包括:整数,小数(浮点数),负数,八进制,十六进制

string

字符串类型,使用引号引起来的数据,单/双都可以

字符串.length:获取当前字符串的长度

字符串.charAt(下标):在字符串中获取对应的下标,下标从零开始

Boolean

布尔类型,只用真和假,即true,false,。

非0即真,非空即真:0为假(false) 其他数字为真(true),空字符串为假,其他为真

null

空值 也是一种值 输出类型为Object类型 (null)

undefined

undefined类型,未定义 表示什么都没有

二、类型转换

①转换为数值类型

固定转换语法

 var res = Number(dat)  //转换成数值
 ​
 var res1 = parseInt(dat)  //转换成整数
 var res2 = parseFloat(dat) //转换成浮点数
 // 1-1 数值转换 
 var n1 = 12; // 数值 
 var n2 = 3.14; // 数值 
 var n3 = "16"; // 字符串 
 var n4 = "50ABC";// 字符串 
 var n5 = "a100abc";// 字符串 
 ​
 //Number()
 var n1 = 12; // 数值 
 var x1 = Number(n1) 
 console.log(n1, typeof(n1)) // 12 number 
 console.log(x1, typeof(x1)) // 12 number 
 ​
 var n2 = 3.14; // 数值
 var x2 = Number(n2) 
 console.log(n2,typeof(n2)) // 3.14 number 
 console.log(x2, typeof(x2)) // 3.14 number
 ​
 var n3 = "16"; // 字符串
 var x3 = c 
 console.log(n3, typeof(n3)) // 16 string 
 console.log(x3, typeof(x3)) // 16 number 
 ​
 var n4 = "50ABC";// 字符串
 var x4 = Number(n4) 
 console.log(n4, typeof(n4)) // 50ABC string 
 console.log(x4, typeof(x4)) // NaN number 
 ​
 var n5 = "a100abc";// 字符串
 var x5 = Number(n5) 
 console.log(n5, typeof(n5)) // a100abc string 
 console.log(x5, typeof(x5)) // NaN number 
 ​
 //parseInt()
 var n1 = 12; // 数值
 var x1 = parseInt(n1) 
 console.log(n1, typeof(n1)) // 12 number 
 console.log(x1, typeof(x1)) // 12 number 
 ​
 var n2 = 3.14; // 数值
 var x2 = parseInt(n2) 
 console.log(n2, typeof(n2)) // 3.14 number 
 console.log(x2, typeof(x2)) // 3 number  直接删除小数部分
 ​
 var n3 = "16"; // 字符串
 var x3 = parseInt(n3) 
 console.log(n3, typeof(n3)) // 16 string 
 console.log(x3, typeof(x3)) // 16 number 
 ​
 var n4 = "50ABC";// 字符串
 var x4 = parseInt(n4) 
 console.log(n4, typeof(n4)) // 50ABC string 
 console.log(x4, typeof(x4)) // 50 number 
 ​
 var n5 = "a100abc";// 字符串
 var x5 = parseInt(n5) 
 console.log(n5, typeof(n5)) // a100abc string 
 console.log(x5, typeof(x5)) // NaN number 
 ​
 // parseFloat(...)
 var n1 = 12; // 数值 
 var n2 = 3.14; // 数值 
 var n3 = "16"; // 字符串 
 var n4 = "50ABC"; // 字符串 
 var n5 = "a100abc"; // 字符串 
 ​
 var x1 = parseFloat(n1)
 console.log(x1,typeof(x1));          //12 'number'
 ​
 var x2 = parseFloat(n2)
 console.log(x2,typeof(x2));         //3.14 'number'
 ​
 var x3 = parseFloat(n3)
 console.log(x3,typeof(x3));         //16 'number'
 ​
 var x4 = parseFloat(n4)
 console.log(x4,typeof(x4));         //50 'number'
 ​
 var x5 = parseFloat(n5)
 console.log(x5,typeof(x5));         //NaN 'number'

②转换成字符串类型

 var res = String(dat)    //转换成字符串数据
 var res = dat.toString() //转换成字符串形式
 var res = dat + ""       //转换成字符串形式

③转换成布尔类型

 var res = Boolean(dat)

④null和undefined类型

 //null -> string
 var x = null
 var res = String(x)               //"null"
 var res1 = x + ""                 //"null"
 var res2 = x.toString()           //ERROR错误   !!
 ​
 //undefined -> String
 var x2 = undefined
 var res3 = String(x2)              //"undefined"
 var res4 = x2 + ""                 //"undefined"
 var res5 = x2.toString()           //ERROR错误   !!
 ​
 //null -> number
 var res6 = Number(x)               // 0  !!
 var res7 = pareInt(x)              //NaN
 var res8 = parseFloat(x)           //NaN
 ​
 //undefined -> nuber
 var res9 = Number(x2)              //NaN
 var res10 = pareInt(x2)            //NaN
 var res11 = parseFloat(x2)         //NaN
 ​
 // null|undefined -> Boolean 
 var res41 = Boolean(x) // false 
 var res42 = Boolean(x2) // false

三、类型的隐式转换

JavaScript语法中,某些代码执行时,会在底层自动完成数据类型的转换, 不需要开发人员干预!这样的转换方式称为类型隐式转换

isNaN

作用:判断一个数据dat是否 不是一个数字;底层执行了Number这样的类型转换

 isNaN:is not a number 是否 不是一个数字
 ​
 var nx1 = "12a"
 console.log(isNaN(nx1))   //true 不是一个数字
 ​
 var nx2 = "12"
 console.log(isNaN(nx2))   //fales 是一个数字
 ​

toFixed(dat)

作用:将一个数值类型的数据,指定保留小数位数后转换成字符串(底层转换)

 var pi = 3.1415926
 pi.toFixed(2)     //"3.14"
 pi.toFixed(6)     //"3.141593"

小数位数保留时,转换成字符串,字符串可以获取长度,将数值转换成字符串,然后通过字符串长度处理,截取等操作完成保留小数位数,最后输出字符串

四、运算符

(1)运算符概述

①什么是运算符

让多个数据参与运算的符号,称为运算符

算术运算符

符号描述示例
+加法var r = 12 + 49
-减法var r = 68 - 54
*乘法var r = 18999 * 3
/除法var r = 89 / 15.5
%取余数var r = 10 % 3
--、++自减、自增var num = 10; num++; num--
 <script>
 // 想要一个变量自己加1
 var a = 1
 a = a + 1 // a = 1 + 1 a = 2
 console.log(a)
 // 递增(递减)运算符 ++a 必须配合变量使用 先自加 后返回值
 // 前置递增 ++写在变量前面
 var b = 10
 ++b //b = b + 1 
 console.log(b)
 //3、
 var c = 1
 console.log(++c + 10) //12
 ​
 // 后置 前置后置单独用 效果一样 后置:先返回原值再自加
 var d = 1
 d++
 var e = 1
 console.log(e++ + 1)
 </script>

赋值运算符

符号描述示例
=给变量中存储数据var name = 'offcn'
-=扩展的减法运算var price = 12.99 price -= 2 等价于: price = price - 2
+=扩展的加法运算name += 'web' name = name + 'web'
*=扩展的乘法运算...
/=扩展的除法运算...

比较运算符 | 关系运算符

逻辑运算符:多个条件并且、或者、取反的操作

运算符的隐式转换

 // 运算符两侧数据类型一致,不会有类型转换
 var res = 10 + 20 
 console.log(res)            // 30 number 
 var res2 = "hello" + "javascript" 
 console.log(res2)           // hellojavascript string
 // 执行一些运算时,如果符号两侧的数据的类型不一致,可能会引发数据类型隐 式转换
 ​
 // 算数运算符 
 var res3 = 10 + "10"        // 1010  拼接
 var res4 = 10 - "10"        // 0 类型转换 转换成数值
 var res5 = 10 * "10"        // 100 类型转换 转换成数值
 ​
 // 比较运算符 
 var res6 = 10 >= "10"       // true 类型转换
 ​

代码中的类型转换,如果不确定我们要操作的数据的具体类型,建议手工指定数据类型

(强制转换),不要依赖语法中提供更多隐式转换!

  • 一个开发人员需要关注的技术、业务非常多,不可能随时记住每一种隐式转换情况

  • 隐式类型转换的场景非常多,很多时候都是为了方便开发,可以使用一些常见的隐式转换!

三目运算符

运算符中的一种特殊运算符,可以添加简单的条件,通过条件的判断输出最终的结果

语法格式:条件 ? 条件为true执行的代码 : 条件为false执行的代码

 var n = 20 
 n > 18 ? "成年" : "未成年"     //"成年" 
 n = 16 
 n > 18 ? "成年" : "未成年"     //"未成年
 // 判断用户输入的账号,长度是否5~11位 
 var account = "admin"
 account.length>=5&&account.length<=11 ? "合法账号": "非法账号,长度不满足" // "合法账号" 
 account= "damu" // "damu"
 account.length>=5&&account.length<=11 ? "合法账号": "非法账号,长 度不满足" //"非法账号,长度不满足" 
 ​
 // 判断用户输入的是否都是数字
 var phone = "18625372606"
 isNaN(phone)                     // false 
 !isNaN(phone)?"合法手机":"非法手机" // "合法手机" 
 var phone = "1862537260a" !isNaN(phone)?"合法手机":"非法手机" // "非法手机"

注意事项:随着表达式的增加,一行代码中可能包含多个运算符号,先执行什么运算,再执行什么运算就存在一定的规律:运算的优先级(类似先乘除后加减),非常遗憾的是优先级不好记忆!

实际项目开发时,建议使用圆括号(小括号)将优先运算的表达式包裹起来强制提高优先级,确定运算顺序!

 // 原始格式:思考 先执行&&运算?先执行比较运算? 
 10 > 20 && 40 < 80 
 ​
 // 改进格式:使用小括号,将需要优先运算的表达式包裹起来,提高代码可读性 
 (10 > 20) && (40 < 80)

五、事件驱动

通过代码获取到了页面上的标签之后,就可以通过事件来操作标签,如鼠标点击、拖动....

事件的特点:表示了用户的一个操作行为、以标签属性的形式出现的、名称是以 on开头的

操作标签样式

 var ele = document.getElementById("id") 
 // 操作行内样式 
 // 获取 
 console.log(ele.style.fontSize) // 获取字体大小 
 // 设置 
 ele.style.fontSize = "18px" 
 // javscript中提供了 获取内嵌样式和外链样式的代码【考虑IE的兼容性】:了解 即可
 // IE 
 console.log(ele.currentStyle.fontSize) // 获取非行内样式:字 体大小 
 // 非IE 
 console.log(getComputedStyle(ele).fontSize) // 获取非行内样式:字 体大小

操作标签内容

 var ele = document.getElementById("id") 
 // 闭合标签 
 // 获取纯文本内容(不处理标签) 
 console.log(ele.innerText) 
 // 获取文本内容(处理标签) 
 console.log(ele.innerHTML) 
 // 设置 
 ele.innerText = "<h2>新的内容,标签当成普通文本</h2>" 
 ele.innerHTML = "<h2>新的内容,渲染成标签</h2>" 
 ​
 // 表单标签 
 // 获取 
 console.log(ele.value) 
 // 设置 
 ele.value = "值"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值