javaScript 基础知识汇总(六)
1、基本类型与对象的区别
基本类型:是原始类型的中的一种值。
在JavaScript中有6中基本类型:string number boolean symbol null undefined
对象类型:能够存储多个值作为属性
可以使用大括号{}创建对象,例如:{name:"xiao",age:23}.。JavaScript中还有其他种类的对象,例如函数就是对象。
2、作为对象的基本类型
1)基本类型仍然是原始数据,如预期相同,提供单个值
2)JavaScript允许访问字符串数字,布尔值和符号的方法和属性。
3)当进行访问时,创建一个特殊的包装对象,它提供额外的功能,运行后即销毁
不同类型提供都有自带的方法
例如:
//字符串的
let str = "Hello";
alert(srt.ToUpperCase());//HELLO
//数字的
let n = 1.123456
alert(n.toFixed(2))//1.23
null/undefined 没有任何方法 除了这两个之外,其他的基本类型都有自己自带的方法。下面开始详解
3、数字类型
JavaScript中的所有数字都以64位格式 IEEE-754存储,也称为双精度
编写数字的方法
通过 关键字 e来缩短数字,并指定零的数量来计数
let billion = 1e9; // "e" 把数字乘以 1 后面跟着指定数量的 0。
let ms =1e-6; //e 后面的负数表示除以 1 后面跟着给定数量的 0:
十六进制,二进制和八进制数字
十六进制在JavaScript中主要是用来表示颜色 编码字符等。
alert(0xff);//255
二进制和八进制
let a = 0b11111111;
let b = 0o377;
alert(a==b);//true
只有这三种进制支持这种写法。对于其他进制,我们应该使用函数 parseInt
toString(base)
方法 num.toString(base) 返回带有给定 base 的进制中 num 的字符串表示
let num = ;
alert(num.toString());//ff
alert(num.toString());//
数值修约
JavaScript内置的修约函数
Math.floor 向下舍入:3.1变成3 -1.1变成-2
Math.ceil 向上舍入:3.1变成4 -1.1变成-1
Math.round 向最近的整数舍入:3.1变成3 3.6变成4
Math.trunc (IE浏览器不支持这个方法)删除小数点后面的所有内容不舍入:3.1变成3 -1.1变成-1
不精确计算
alert(0.1+0.2==0.3);//false
alert(0.1+0.2);// // 0.30000000000000004
在JavaScript语言中表达小数都有精度损失
解决方法:通过特定函数 toFixed(n) 来解决
let sum = 0.1+0.2;
alert(+sum.toFixed(2));//0.30
或者将其转化成整数解决
测试:isFinite 和isNaN
isNaN(value) 将其参数转换为数字,然后测试它是否为NaN
NaN与任何值不相等,包括自己 alert(isNaN(NaN);//true alert(NaN==NaN);//false
isFinite 验证字符串值是否为常规数字
alert( isFinite("15") ); // true alert( isFinite("str") ); // false, because a special value: NaN alert( isFinite(Infinity) ); // false, because a special value: Infinity
请注意,所有数字函数(包括 isFinite)中的空字符串或空格字符串均被视为 0。
parseInt 和parseFloat
有时候 parseInt / parseFloat 会返回 NaN。一般发生在没有数字可读的情况下:
alert( parseInt('100px') ); //
alert( parseFloat('12.5em') ); // 12.5
alert( parseInt('12.3') ); // 12, only the integer part is returned
alert( parseFloat('12.3.4') ); // 12.3, the second point stops the reading
更多的数学函数 同构Math对象来获取 Math.random()随机数 Math.pow(n,power) n的power次幂
4、字符串
引号
字符串可以包含再单引号、双引号和反引号中
let single = 'single-quoted';
let double = "double-quoted";
let backtickts` = `bacticks`;
单引号和反引号本质是一样的,但是反引号允许我们通过${...}将任何表达式嵌入到字符串:
function sum(a,b){
return a+b;
}
alert(`1+2=${sum(1,2)}.`);//1+2=3
使用反引号的另一个优点是它们允许字符串跨行:
let guestList = `Guests:
*John
*Pete
`;
alert(guestList);
特殊字符

字符串长度
let str = "test";
let len = str.length; //其他语言中可能是length()一个方法,但是在Javascript中这个是属性
访问字符
通过 "[]" 或者 "charAt()"
可以通过 for ..of遍历字符
for (let char of "Hello") {
alert(char); // H,e,l,l,o (char 变为“H”,然后是“e”,然后是“l”等)
}
字符串不可变
因为字符串是引用类型,该值是放在堆上的,堆上的值是不可更改的,只能开辟新的空间来存放新的字符串
let str = 'hi';
str[]='A';//error str='h'+str[];//right
改变大小写
toLowerCase() 和 toUpperCase()
alert( 'Interface'.toUpperCase() ); // INTERFACE
alert( 'Interface'.toLowerCase() ); // interface
查找字符串
str.indexOf
let str = "hello world";
let pos = str.indexOf('wo');
let pos1 = str.indexOf('wo',);
第一种为不设置查找起始位置,第二种为设置查找起始位值
str.lastIndexOf 和indexOf 用法一样,含义为从字符串的末尾开始寻找
includes , startsWith , endsWith
主要用来测试匹配,并且不需要其位置
alert( "Widget with id".includes("Widget") ); // true
alert( "Hello".includes("Bye") ); // false
alert( "Midget".includes("id") ); // true
alert( "Midget".includes("id", ) ); // false, 位置 3 没有“id”
alert( "Widget".startsWith("Wid") ); // true,“Widget”以“Wid”开始
alert( "Widget".endsWith("get") ); // true,“Widget”以“get”结束
获取子字符串
有三种获取子字符串的方法:substring , sunstr 和 slice

javaScript 基础知识汇总(六)的更多相关文章
- JavaScript基础知识汇总
1. 图片热区: <img src="logo.jpg" usemap="#logo"> <map id="logo" n ...
- javaScript 基础知识汇总(三)
1.循环:while 和 for while 循环 while(condition){ //代码 循环体 } do ... while 循环 let i =0; do { //循环体 }while( ...
- javaScript 基础知识汇总(五)
1.垃圾回收 JavaScript 的内存管理是自动的,不能强制执行或者阻止执行 可达性 JavaScript中主要的内存管理概念是可达性. 什么是可达性? 定义一个对象 let user = { n ...
- javaScript 基础知识汇总(二)
1.运算符 术语或者叫法:一元运算符.二元运算符.运算元(参数) let x=0; x=5+2; //5和2为运算元,“+” 为二元运算符: x=-x; //"-" 为一元运算符 ...
- javascript 基础知识汇总(一)
1.<script> 标签 1) 可以通过<script> 标签将javaScript 代码添加到页面中 (type 和language 属性不是必须的) 2)外部的脚本可以通 ...
- JavaScript 基础知识汇总目录
一.标签.代码结构.现代模式.变量.数据类型.类型转换 GO 二.运算符.值的比较.交互.条件运算符.逻辑运算符 GO 三.循环 while 和 for .switch语句.函数.函数表达式和箭头函数 ...
- javaScript 基础知识汇总 (十三)
1.Class 在JavaScript中 calss即类是一种函数 基本语法 class Myclass{ constructor(){} method1(){} method2(){} method ...
- javaScript 基础知识汇总(七)
1.数组 特点:数组是可以存储有序集合的对象. 声明: let arr = new Array(); let arr=[]; 大多数情况下我们使用第二种. let fruits = [" ...
- javaScript 基础知识汇总 (十)
1.New Function 语法:let func = new Function ([arg1[, arg2[, ...argN]],] functionBody) //无参数示例: let say ...
随机推荐
- Python中文本文件读写操作的编码问题
Python中文本文件读写的编码问题 编码(encode): 我们输入的任何字符想要以文件(如.txt)的形式保存在计算机的硬盘上, 必须先经按照一定的规则编成计算机认识的二进制后,才能存在电脑硬盘上 ...
- spark 源码分析之九--Spark RPC剖析之StreamManager和RpcHandler
StreamManager StreamManager类说明 StreamManager 官方说明如下: The StreamManager is used to fetch individual c ...
- 那些年,想和你一起认识的SpringCloud Eureka
前几天鲁班LB跟我说:你玩把游戏都要半个钟啦,为何不用这时间来看看书,如果涨工资还可以帮我买个皮肤. 面对如此合理的这需求,但我不以为然,事实上并不是我不想学习,而是 ↓ 实力不允许呀~ 直到有一天, ...
- Ubuntu启动Apache
划重点:最重要的是找到一个文件--------startup.sh 如果你是按照百度上的方法下载的Apache2,那么就按照百度的方式来 但是异曲同工 如果你是自己在网上下载的Apache到的磁盘 找 ...
- 【WPF】 InkCanvas 书写毛笔效果
首先贴出本文参考学习的文章吧. https://www.cnblogs.com/LCHL/p/9055642.html#4206298 感谢这位懒羊羊的代码和讲解(下简称羊博主),我在此基础上稍微加了 ...
- 【MySQL】日常小技巧汇总,更新中……
创建表时修改自增主键,添加 AUTO_INCREMENT=<Number> ,例如: CREATE TABLE `table_name` ( `id` int(11) unsigned N ...
- codeforces 355A Vasya and Digital Root
题意就是找出一个长度为k的整数,使得它的root为d,k的可能取值为1-1000. 第一眼看到这个题,无从下手,想到那么长的数,暴力肯定超时.其实不然,题目要求只要输出任何一个满足条件的即可,因为任何 ...
- Go基础语法学习
Go语言基础 Go是一门类似C的编译型语言,但是它的编译速度非常快.这门语言的关键字总共也就二十五个,比英文字母还少一个,这对于我们的学习来说就简单了很多.先让我们看一眼这些关键字都长什么样: 下面列 ...
- Oauth2认证模式之授权码模式实现
Oauth2认证模式之授权码模式(authorization code) 本示例实现了Oauth2之授权码模式,授权码模式(authorization code)是功能最完整.流程最严密的授权模式.它 ...
- bat 下 字符串拆分 类似 split 可以使用 for /f delims
@echo offset strin=AA,BB,CC,DDfor /f "tokens=1,2,3,4 delims=, " %%a in ('echo %strin%') do ...