关于JavaScript的简介
JavaScript的诞生
诞生于1995年 (Netsape(网景)出品)
JavaScript的概述
1.JavaScript是一门轻量级的语言
2.JavaScript是一门单线程的语言(一个线程解析(从上到下))
3.JavaScript是一门弱语言,即它没有固定的类型划分(给定的值是什么类型 它就是什么 类型)
4.JavaScript还是一门脚本语言(带有Script的就是脚本语言,用来侵入、实现xss攻击)
5.只有要浏览器的地方就能够解析相对应的JavaScript
JavaScript的构成
JavaScript主要由三部分组成:ECMAScript DOM BOM
ECMAScript:规定JavaScript的基本语法以及相关对象
DOM:文档对象模型,用来操作HTML相关内容
BOM:浏览器对象模型,用来操作浏览器相关内容
JavaScript的应用
JavaScript的书写方式
1.书写在script标签里面(一般会用到)
<script> //语句书写 console.log('hello world') </script>
2.写在js文件里面(推荐写法)
定义一个js文件(index.js)
console.log('hello world')
引用这个js文件
<script src="./index.js"></script>
3.书写在对应的时间属性里,也就是行内(比较少用,只有当代码比较短且只用得到 一次时会写)
<a href=”javascript:void()”>去百度</a> //不进行js操作
<a href=”#” onclick=”alert(‘hello world’)”></a>
<a href="javascript:void()">去百度</a> //不进行js操作 <a href="#" onclick="alert('hello world')"></a>
JavaScript变量的定义
使用var关键词声明
//var 变量名 = 值 var number = 10
关于变量名的书写(要求见名知意 区分大小写0)
1.只能是对应的字母或者数字或者下滑线等字符(不能以数字开头)
2.一般采用驼峰命名法(helloWorld 采用单词拼接第一个单词首字母小写 其他单 词首字母大写)
3.不能使用关键词(占用之前的关键词的引用空间)
4.普通变量首字母小写 常量全大写(const)
JavaScript的数据类型(值类型 基本数据类型)
1.number类型(所有的数值)
2.String类型(字符串类型)(单引号、双引号都是字符串)
3.boolean类型(布尔类型)(true false)
4.null 空类型(当值为null时,类型为null类型)
5.undefined 未定义 (当前没有给值)
object (对象类型 引用数据类型(后面会说))
eg:使用typeof来查看对应的类型(基本数据类型返回的是对应的类型名 null类型返 回object)
//类型查看 typeOf 查看对应的类型的 null显示的是object (undefined是对应的null的对象扩展) console.log(typeof number1); console.log(typeof bool); console.log(typeof un); console.log(typeof nl); console.log(typeof str);
JavaScript数据类型的转换
number类型转为string类型 (string>number 隐式转换 toString方法)
//将对应number类型转为string类型 var str1 = number1.toString()
string转为number (显式转换)
1.Number方法(直接转number类型)
2.使用parseInt方法(转整型)
3.使用parstFloat方法 (转小数)
var str2 = "1a123.12a" console.log(Number(str2));//当你将一个内容转为的数值过程中无法被解析就会出现NaN //从前到后拿出里面的数值 前面没有数值变成NaN console.log(parseInt(str2)); console.log(parseFloat(str2));
isNaN 是NaN返回true不是返回false(not a number)
var a = 10 console.log(isNaN(a)) //false var str = 'abc' console.log(isNaN(Number(str)))//true
无穷大 无穷小(Infinity)
//无穷大 var max = Infinity //无穷小 var min = -Infinity
将字符串转为对应的boolean类型
Boolean方法 转为布尔类型
var str ="abc" //转为boolean类型 非空就是true 空字符串表示false var b = Boolean(str) //true var b1 = Boolean('') //false
将number转为布尔类型
var number1 = 10 //number转布尔 非0和非NaN则为true NaN和0就是false console.log(Boolean(number1))//true console.log(Boolean(0))//false console.log(Boolean(NaN))//false
将undefined和对应的null转为boolean(false)
var un console.log(Boolean(un)) //false console.log(Boolean(null)) //false
将boolean类转为number类型 (false 0 true 1)
console.log(Number(true)) //1 console.log(Number(false)) //0
将对应的undefined和null转为number
var un console.log(Number(un)) //NaN console.log(Number(null)) //0
JavaScript中的运算符和表达式
算术运算(+ – * / % ++ –)
主要要弄懂:
1.自增和自减的前置和后置的区别
2.前置先执行对应的++(–) 再执行对应的代码
3.后置先执行对应的代码 再执行++(–)
逻辑运算
&& 与(同true则为true) || 或 (有true就是true) ! 非(取反)
比较运算
> < >= <= == != ===(全等 俩个类型和对应的值一模一样 这个俩个是一个东西)
赋值运算
= += -= /= *= %=
var j = 10 j+=100 //j=j+100 j/=10 //11 j*=5 //55 console.log(j);
位运算(转为二进制再进行位的变化运算)
>> 右移 << 左移 ~~ 去掉小数
eg:计算顺序 先算括号里面的 ++或– 再进行乘除取余 再进行+- 再进行比较运算
再逻辑运费 再进行赋值
三元运算符(三目运算符)
表达式(boolean类型表达式)? true的内容 :false的内容 var a = 10 var b = 20 a>b?10:20 //20 '123a'/10?'hello':'hi'//hi
number对应的方法
保留几位小数的方法 toFixed
var number1 = 3 var number2 = 10 //默认的大小16位 整数位也是16位 超出不能显示(问题) console.log(number2/number1); //保留小数(方法会优先调用) 转成字符串 console.log((number2/number1).toFixed(3));
进制的转换(扩展内容)
常用的进制:二进制(计算机能识别的基础) 四进制 八进制(逢8进1) 十六进制 十 进制(常用)
十进制转二进制 (除2取余法)
二进制转十进制 根据对应的位数乘以对应的2的次方将所有值相加
十进制转8进制 (除8取余)
十进制转16进制 (除16取余)
通过拿到8进制 16进制 2进制的内容得到一个十进制的数(parseInt parseFloat)
//将对应的8 或者 16进制等转为10进制的数值 var number = "30" //八进制的内容 //将对应的八进制30转为10进制 console.log(parseInt(number,8)); var str = '6a' console.log(parseInt(str,16)); //前面写了0x表示当前是16进制数 var str = '0x6a' console.log(parseInt(str)); //前面写0的情况下 他会转为对应的8进制或者是10进制 具体看后面的参数 var str = '061' console.log(parseInt(str,8));
将10进制的数值转为对应的8 或者 16进制的字符串 (toString)
//将10进制的数值转为对应的8 或者 16进制的字符串 //toString var number = 24 //将对应的10进制转为8进制 console.log(number.toString(8)); //将对应的10进制转为16进制 console.log((106).toString(16));
toString方法和对应的parseInt方法 里面的参数可以填可以不填 不填默认转为10进制
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/276951.html