前端笔记5-js1
一.在JS中一共有6种数据类型
1. String 字符串
2. Number 数值
3. Boolean 布尔值
4. Null 空值
5. Undefined 未定义
6. Object 对象
其中 String Number Boolean Null Undefined属于基本数据类型,而Object属于引用数据类型
二 .String 字符串
1.在JS中字符串需要使用引号引起来,双引号或单引号都行
2.str变量 "str"字符串
3.引号是不能嵌套的
三.typeof
- 通过typeof可以来检查一个变量的类型
- 语法:typeof 变量
- 它会将检查的结果返回
- 使用typeof检查一个字符串时,会返回string
- 使用typeof检查一个数值时,会返回number
四.
* JS中可以表示的最大的数字
* Number.MAX_VALUE 来获取最大值
* 1.7976931348623157e+308
*
* Number.MIN_VALUE 0以上的最小值
* 5e-324
*
* 如果我们使用的数字超过了最大值,则会返回Infinity,表示无穷
* ±Infinity 正负无穷,它的类型也是Number
*
* 特殊的数字
* NaN (Not A Number)
* - 用来表示一个非法的数字
* - 使用typeof检查一个NaN时,也会返回number
五.进制
需要表示一些其他进制的数字
- 十六进制数字:
0x数字
- 八进制数字
0数字
- 二进制的数字
0b数字 IE不支持 Hbuilder也不支持
var b = 0x10; //十六进制的10
b = 070; //八进制的10
b = 0b10; //二进制的10
六.Boolean
Boolean(布尔值)
- 我们可以使用布尔值来进行逻辑判断
- 布尔值只有两个true和false
- true表示逻辑的真
- false表示逻辑的假
- 使用typeof检查一个布尔值时,会返回boolean
七.
Undefined(未定义)
- Undefined表示一个声明但是没有赋值的变量
- Undefined的类型只有一个值 undefined
- 使用typeof检查一个Undefined类型的数据时,会返回undefined
Null(空值)
- Null类型只有一个值,就是null
- null值专门用来表示为空的对象
- 使用typeof检查一个Null类型的值时,会返回object
八.
将其他的数据类型转换为String
- 方式一:
- 调用被转换数据类型的toString()方法
- toString()方法不会改变原变量的值,而是将值转换为字符串并返回
- 由于null和undefined中没有toString()方法,
所以不能调用toString()将他们转换为字符串
- 方式二:
- 调用String()函数
- 将被转换的数据做为参数传递给String()
- 原理:
- 对于具有toString()方法的类型来说,
String()会调用它们的toString()方法来将其转换为字符串
- 对于null和undefined来说,
会将null 直接转换为 "null"
将undefined 直接转换为 "undefined"
九.
/*
转换为Number
- 方式一:
- 使用Number()函数
- 转换的情况:
1.对于字符串来说
- 如果字符串是一个合法的数字,则将其转换为对应的数字
- 如果字符串不是一个合法的数字,则转换为NaN
- 如果字符串是一个空串或纯空格的字符串,则转换为0
2.对于布尔值来说
- true转换为1
- false转换为0
3.对于Null
- null转换为0
4.对于Undefined
- undefined转换为NaN
* */
var b = "123px";//NaN
b = "123";//123
b = "abc";//NaN
b = ""; //0
b = " "; //0
//调用Number()函数将b转换为数字
b = Number(b);
//布尔值
b = true; //1
b = false; //0
b = Number(b);
//Null
b = null;
b = Number(b);
//Undefined
b = undefined;
b = Number(b);
/*
* 除了使用Number()函数,JS中还为我们提供了两个函数,
* 专门用来将一个字符串转换为数字的
* parseInt()
* - 将一个字符串转换为整数
* - 使用该函数解析字符串时,它会从字符串的左侧开始解析,
* 直到解析到最后一个有效的整数位
* parseFloat()
* - 将一个字符串转换为小数
* - parseFloat()和parseInt()类似
* 不同的是它可以解析到有效的小数位
*/
var c = "456px"; //456
c = "789a678b456"; //789
c = "123.456"; //123
/*
* 像"070"这样的字符串,火狐 chrome等浏览器会当成10进制数字进行解析,转换为70
* 但是IE8,会将其当成8进制的数字解析,解析为56
*
* 在使用parseInt时,可以传递以进制作为参数,来说明数字的进制
*/
c = "070";
//调用parseInt将其转换为Number
c = parseInt(c,10);
/*console.log(c);
console.log(typeof c);*/
var d = "123.45px";//123.45
d = "123.45.67"; //123.45
d = "hello123"; //NaN
d = parseFloat(d);
console.log(d);
console.log(typeof d);
十.
/*
* 转换为Boolean
* - 使用Boolean()函数
* - 转换的情况:
* - 对于数字
* - 除了0和NaN剩下都是true
*
* - 对于字符串
* - 除了空串剩下的都是true
*
* - null和undefined都是false
*
* - 对象默认都是true
*/
var a = 1; //true
a = -100; //true
a = Infinity; //true
a = 0; //false
a = NaN; //false
//调用Boolean()来将a转换为Boolean
a = Boolean(a);
a = "hello"; //true
a = "false"; //true
a = ""; //false
a = " "; //true
a = "0"; //true
a = Boolean(a);
a = null;
a = Boolean(a);
a = undefined;
a = Boolean(a);
十一.算术运算符
+可以对符号两侧的值进行加法运算,并将运算结果返回
当对非数字(除了字符串)进行加法运算时,它会将其先转换为数字,然后再运算
如果对两个字符串进行相加,则会进行拼串的操作,将两个字符串拼成一个字符串
任何值和字符串进行加法运算时,都会先将其转换为字符串,然后在和字符串进行拼串的操作
我们经常通过为一个任意的值加 空串的形式来将其转换为字符串,
这种形式我们称为隐式的类型转换,原理实际上也是通过String()函数转换的,
但是这种方式更加简单。
a = true + false;//1
a = false + null; //0
//任何值和NaN做任何运算都是NaN
a = NaN + 10; //NaN
a = undefined + 100; //NaN
a = "hello" + "world"; //"helloworld"
a = 11 + "abc"; //"11abc"
- 可以对符号两侧的值进行减法运算
* 可以对符号两侧的值进行乘法运算
/可以对符号两侧的值进行除法运算
这些符号的运算规则和数学中是一摸一样的,
不同的是在对非数字类型进行运算时,会先将其转换为数字然后在运算
我们还可以通过为一个任意的数据类型 -0 *1 /1 来将其转换为Number类型
原理和Number()函数一样。
% 可以对符号两侧的值进行取模(取余)运算
同样对非数字进行取模的运算,也会转换为数字然后在运算
十二.一元运算符
//可以使用一元的+或-将其他数据类型转换为Number,原理和Number()函数一样
a = "123";
a = +a; //123 number类型的
十三.逻辑运算符
! 逻辑非
非可以对一个布尔值进行取反操作
true变成false,false变true
如果为一个值取两次反和没取一样
如果对一个非布尔值进行取反操作,它会将其转换为布尔值然后再运算
利用这个特点,我们可以为任意的数据类型去两次反,来将其转换为布尔值,
原理和Boolean()函数一样
/*
* 为a取两次反,来将其转换为布尔值
*/
a = 1;
a = !!a; //true
十四.
对于非布尔值,做与或运算时,它会先将其转换为布尔值,然后在运算 最终返回变量的原值!
- 非布尔值的与运算:
如果第一个值为false,则返回第一个。如果第一个值为true,则返回第二个
- 非布尔值的或运算
如果第一个值为true,则返回第一个。如果第一个值为false,则返回第二个
//如果两个值都为true,则返回后边的
var result = 2 && 10; //10
result = 0 && 1; //0
result = 1 || 2; //1
result = 0 || 2; //2
十五.关系运算符
如果对非数值类型进行关系运算,则会将他们转换为Number然后在比较
var result = 5 < 4; //false
result = true < "2"; //true
result = null < 5; //true
//NaN < 5 NaN和任何值比较都是false
result = undefined < 5; //false
result = undefined > 5; //false
result = undefined >= 5; //false
result = 5 < "4"; //false
* 当关系运算符的两侧都是字符串时,它不会将字符串转换为Number,而是会比较字符串的Unicode编码
result = "a" < "b"; //true
result = "abcdefghijk" < "b"; //true
result = "5" < "4"; //false
result = "5" < "40"; //false
十六.相等运算符
相等运算符,它可以用来判断两个值是否相等,如果相等,则返回true,否则返回false
* - 如果对两个类型不同的变量进行相等比较,会先将其转换为相同的类型,然后再比较
* (至于具体转换为什么类型,不定,但是大部分情况是转换Number)
//console.log("1" == true); //true
//字符串和布尔值比时,都转换为Number然后在比
//console.log("2" == true); //flase
//console.log(null == 0);//false
//由于undefined衍生自null,所以这两个类型的值做相等比较时会返回true
//console.log(null == undefined);//true
//NaN不和任何值相等,包括它自己
//console.log(NaN == NaN); //false
var a = NaN;
//判断a的值是否是NaN
//console.log(a == NaN);
/*
* 在JS中为我们提供了一个isNaN()函数,
* 这个函数专门可以判断一个值是否是NaN,如果是则返回true,否则返回false
*/
//console.log(isNaN(a));
/*
* ===
* - 全等运算符,可以判断两个值是否全等,如果全等则返回true,否则返回false
* - 全等和相等的区别就是相等会做自动的类型转换,而全等不会,
* 使用全等时,如果两个值的类型不同,直接返回false
*/
//console.log(1 === "1"); //false
//console.log(true === "1"); //false
//null和undefined相等,但是不全等
//console.log(null === undefined); //false
前端笔记5-js1的更多相关文章
- 2.前端笔记之css
title: 1.前端笔记之CSS date: 2016-04-05 23:05:51 tags: 前端 categories: w3c --- 作者:刘耀 **出处:http://www.liuya ...
- 1.前端笔记之html
title: 1.前端笔记之HTML date: 2016-04-04 23:21:52 tags: Python categories: Python --- 作者:刘耀 **出处:http://w ...
- 写给后端的前端笔记:浮动(float)布局
写给后端的前端笔记:浮动(float)布局 这篇文章主要面向后端人员,对前端有深刻了解的各位不喜勿喷. 起因 前一阵子我一个后端的伙伴问我,"前端的左飘怎么做?",我立马就懵了,& ...
- 写给后端的前端笔记:定位(position)
写给后端的前端笔记:定位(position) 既然都写了一篇浮动布局,干脆把定位(position)也写了,这样后端基本上能学会css布局了. 类别 我们所说的定位position主要有三类:固定定位 ...
- 前端笔记知识点整合之JavaScript(三)关于条件判断语句、循环语句那点事
一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力 ...
- 前端笔记-html
前端笔记html 前端三大利器,html(本源),css(着装),js(动作) html 学习html就是学习一套规则能够被浏览器识别,在页面中展示,一个页面只能运行一个html 标签 <> ...
- 移动端前端笔记 — 遇到的常见JS与CSS问题及解决方法 ( 摘自zdwzdwzdw)
笔者接触移动前端快一年了,特将平时的一些笔记整理出来,希望能够给需要的人一些小小的帮助.同时也由于笔者的水平有限,虽说都是笔者遇到过使用过的,但文中可能也会出现一些问题或不严谨的地方,望各位指出,不胜 ...
- 前端笔记之Vue(一)初识SPA和Vue&webpack配置和vue安装&指令
一.单页面应用(SPA) 1.1 C/S到B/S页面架构的转变 C/S:客户端/服务器(Client/Server)架构的软件. C/S 软件的特点: ① 从window桌面双击打开 ② 更新的时候会 ...
- 前端笔记之ES678&Webpack&Babel(下)AMD|CMD规范&模块&webpack&Promise对象&Generator函数
一.AMD和CMD规范(了解) 1.1传统的前端开发多个js文件的关系 yuan.js中定义了一个函数 function mianji(r){ return 3.14 * r * r } main.j ...
- 前端笔记之ES678&Webpack&Babel(上)初识ES678&Babel&let和const&解构&语法
一.ES版本简介和调试运行方法 1.1 ECMAScript简介 MDN手册:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript JavaS ...
随机推荐
- 51nod1327 棋盘游戏
远古大坑 神仙DP状态设计题 https://blog.csdn.net/white_elephant/article/details/83592103 从行的角度入手,无论如何都要状压 每列最多放一 ...
- python基础四之列表
列表详解 列表的增删改查! 增加 li = ['zxc', 'is', 'a'] # append 在列表结尾整体添加 修改列表,但是没有返回值 li.append('boy') print(li) ...
- H5 操作class 类样式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- H3C 环路避免机制四:定义最大值
- P1072 城市轰炸
题目描述 一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形. 在轰炸后,有Y个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几轮. 输入格式 ...
- win10 uwp 使用 Border 布局
在 UWP 写一个界面需要将元素排列,在排列元素的时候有特殊的元素叫容器.容器的意思是元素里面包含元素,在 UWP 用到的容器有很多,也可以自己写一个.简单的容器是 Border 边框控件,如控件说的 ...
- JUnit4---Hamcrest匹配器常用方法总结
一.Hamcrest是什么? Hamcrest is a library of matchers, which can be combined in to create flexible expres ...
- C# AutoResetEvent 理解
.. AutoResetEvent在内存中保持着一个bool值值为False,则使线程阻塞:值为True,使线程退出阻塞: 创建AutoResetEvent对象的实例,在函数构造中传递默认的bool值 ...
- 【21.00%】【vijos P1018】智破连环阵
描述 B国在耗资百亿元之后终于研究出了新式武器--连环阵(Zenith Protected Linked Hybrid Zone).传说中,连环阵是一种永不停滞的自发性智能武器.但经过A国间谍的侦察发 ...
- vue 实例未加载完成显示 花括号解决方案
css [v - cloak] { display: none!important; } html < div id = "app" v-cloak >