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 基础知识汇总(六)的更多相关文章

  1. JavaScript基础知识汇总

    1. 图片热区: <img src="logo.jpg" usemap="#logo"> <map id="logo" n ...

  2. javaScript 基础知识汇总(三)

    1.循环:while 和 for while 循环 while(condition){ //代码 循环体 } do ... while  循环 let i =0; do { //循环体 }while( ...

  3. javaScript 基础知识汇总(五)

    1.垃圾回收 JavaScript 的内存管理是自动的,不能强制执行或者阻止执行 可达性 JavaScript中主要的内存管理概念是可达性. 什么是可达性? 定义一个对象 let user = { n ...

  4. javaScript 基础知识汇总(二)

    1.运算符 术语或者叫法:一元运算符.二元运算符.运算元(参数) let x=0; x=5+2; //5和2为运算元,“+” 为二元运算符: x=-x; //"-" 为一元运算符 ...

  5. javascript 基础知识汇总(一)

    1.<script> 标签 1) 可以通过<script> 标签将javaScript 代码添加到页面中 (type 和language 属性不是必须的) 2)外部的脚本可以通 ...

  6. JavaScript 基础知识汇总目录

    一.标签.代码结构.现代模式.变量.数据类型.类型转换 GO 二.运算符.值的比较.交互.条件运算符.逻辑运算符 GO 三.循环 while 和 for .switch语句.函数.函数表达式和箭头函数 ...

  7. javaScript 基础知识汇总 (十三)

    1.Class 在JavaScript中 calss即类是一种函数 基本语法 class Myclass{ constructor(){} method1(){} method2(){} method ...

  8. javaScript 基础知识汇总(七)

    1.数组 特点:数组是可以存储有序集合的对象. 声明: let arr = new Array();   let arr=[]; 大多数情况下我们使用第二种. let fruits = [" ...

  9. javaScript 基础知识汇总 (十)

    1.New Function 语法:let func = new Function ([arg1[, arg2[, ...argN]],] functionBody) //无参数示例: let say ...

随机推荐

  1. KNN算法实现手写体区分

    KNN算法在python里面可以使用pip install指令安装,我在实现之前查看过安装的KNN算法,十分全面,包括了对于手写体数据集的处理.我这里只是实现了基础的识别方法,能力有限,没有数据处理方 ...

  2. vue 初始化table数据,数据闪现的问题

    使用的iview,很简单的一个table,可以扩展显示,我这里则是更改了一下,显示的也是表格,内容为明细数据. 原以为很简单的可以直接调用方法,进行数据的渲染,但是没想到,数据只是一闪而过. 百思不得 ...

  3. 洛谷 P5150 题解

    题面 因为 n=lcm(a,b)n = lcm(a, b)n=lcm(a,b) ,可以得出: a  和 b  的质因数都是 n 的质因数 对于 n  的每个质因数 x ,在 n 中的次数为 y ,那么 ...

  4. Spring浅入浅出——不吹牛逼不装逼

    Spring浅入浅出——不吹牛逼不装逼 前言: 今天决定要开始总结框架了,虽然以前总结过两篇,但是思维是变化的,而且也没有什么规定说总结过的东西就不能再总结了,是吧.这次总结我命名为浅入浅出,主要在于 ...

  5. ABP实现EF执行SQL(增删改查)解决方案

    前言 一般情况下,使用EF中的语法可以帮助我们完成绝大部分业务,但是也有特殊的情况需要直接执行的Sql语句.比如,我们的业务过于复杂繁琐,或是有些业务使用EF操作时比较复杂,但是使用的Sql时会很简单 ...

  6. MySQL高速缓存

    MySQL高速缓存启动方法及参数详解query_cache_size=32M query_cache_type=1,默认配置下,MySQL的该功能是没有启动的,可能你通过show variables ...

  7. Linux:oracle11.2.0dbca静默建库

    1.关闭防火墙 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall ...

  8. 洛谷 P3338 [ZJOI2014]力

    题意简述 读入\(n\)个数\(q_i\) 设\(F_j = \sum\limits_{i<j}\frac{q_i\times q_j}{(i-j)^2 }-\sum\limits_{i> ...

  9. 解决pyinstaller打包可执行文件,存放路径包含中文无法运行的问题

    一.实验环境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 二.问题描述 1.使用 ...

  10. Windows Server 2008配置系统安全策略

    下面学习Windows Server 2008配置系统安全策略 在工作组中的计算机本地安全策略有 用户策略,密码策略,密码过期默认42天 服务账户设置成永不过期,帐户锁定策略,本地策略,审核策略,计算 ...