美文网首页
基础概念

基础概念

作者: YangGui | 来源:发表于2017-01-10 15:26 被阅读0次

参考教程,廖雪峰

数据类型

Number

js不区分整数合浮点数,统一使用Number。
NaN:表示Not a Number ,无法使用Number计算时用NaN。
Infinity:表示无限大,当数值超过Number所能表示的最大值时使用。

比较运算符==和===

==,会自动转换数据类型。
===,不会转换数据类型,数据类型不一样,返回false。类型一样时,再比较数值。
NaN与其他所有值都不相等,包括自身。
判断NaN的方法通过isNaN()函数:isNaN(NaN);

浮点型的比较

由于计算机无法准确地表示无限循环的小数,所以比较两个浮点型数据大小,只能比较两个值的差值绝对值是否小于某个阈值。

1/3 === (1 - 2/3);  //false
Math.abs(1/3 - (1 - 2/3)) < 0.000001;  //true
null和undefined

null:表示空,undefined:表示未定义
两者区分不大,一般只在判断函数参数是否传递的情况下用undefinded。

数组

var array = [1, 2, 3, 'js', true, null];
数组表示按顺序排列的集合,和Java不同,js的数组可以包含任意数据类型。
还可以使用

new Array(1, 2,3);
对象

js对象是一组键-值队的无序集合

var person = {
         name:'Royal',
         age:25,
         phone:1110120110,
         school:null
};
strict模式

js申明变量使用var关键字。若不使用var,则是全局变量。
全局变量在同一个页面的不同js文件中会相互影响。
ECMA为此推出了strict模式,该模式下强制使用var声明变量。
使用strict模式时,在js代码前加上一句:

'use strict';
多行字符串

由于多行字符串用 \n
写起来比较费事,所以最新的ES6标准新增了一种多行字符串的表示方法,用* ... *表示:

alert(
`多行
字符串
测试`
);
多个字符串连接

可以同java一样,使用+连接
ES6新增了一种模板字符串,使用${ var },它会自动替换字符串中的变量:

var name = 'Js';
var age = 20;
alert(`Hello,${name},age = ${age}`);
数组

JS的数组可以动态改变数组的大小,java数组的大小在初始化时确定后,不能调整。
使用数组的length属性,可以获取数组的大小。
直接给length赋值可以改变数组的大小。

var array = [1,2,3,4,5];
array.length; //length为5
array.length = 10; //length变为10

通过索引可以给数组赋值,如果索引超过数组的大小范围,也会改变数组的大小。

var array = [1,2,3];
array[1] = 20;//[1,20,3]
array[4] = 100; // [1,20,3,undefined,100]

Array和String都可以通过indexOf()来搜索一个指定的元素的位置

var str = "this is a string";
str.indexOf('str');//返回10
str.indexOf('royal');//没有,返回-1
var arr = [10, 20, '30', 'xyz'];
arr.indexOf(10); // 元素10的索引为0
arr.indexOf(20); // 元素20的索引为1
arr.indexOf(30); // 元素30没有找到,返回-1
arr.indexOf('30'); // 元素'30'的索引为2

slice()就是对应String的substring()版本,它截取Array的部分元素,然后返回一个新的Array.
均是左闭右开。

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C']
arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G']

若不传递参数,则从开始截取到结束,conger复制这个数组。

var,let和const

var申明的变量的作用域是函数级的。
let申明的变量的作用域是块级的。
const申明的变量的作用域是块级的的常量。

相关文章

  • Golang Gist

    概念讲解 基础概念 基础问答 基础问答 编码能力考查x

  • 基础概念

    Ecmascript 是一个脚本语言标准,规定这个语言的语法,内置函数等等 Javascript是Ecmascri...

  • 基础概念

    集合竞价视频 做市做市商 交易时间 第一次集合竞价时间:9:15-9:25; 做市商做市前报价时间:9:25-9:...

  • 基础概念

    一:统计学和机器学习的比较和练习: 二: from:https://ai.baidu.com/paddlepadd...

  • 基础概念

    净流动资产值 格雷厄姆的主要选股规则, 是买入市值低于净流动资产值 2/3 的企业,待股价超过净资产以上某比例后卖...

  • 基础概念

    1.基本概念 Java是纯面向对象语言,“Everything is Object”;所有代码(包括函数、变量等)...

  • 基础概念

    参考教程,廖雪峰 数据类型 Number js不区分整数合浮点数,统一使用Number。NaN:表示Not a N...

  • 基础概念

    关键 标识符 所谓标识符是指变量、函数、属性的名字,或者函数的参数。标识符的书写有几个特征 区分大小写 第一个字符...

  • 基础概念

    编译后的二进制代码才是机器语言,或者叫机器代码。汇编语言亦称为符号语言。编译器将源程序转换成机器能理解的程序。无符...

  • 基础概念

    基于内容 基于用户的协同过滤 基于商品的协同过滤

网友评论

      本文标题:基础概念

      本文链接:https://www.haomeiwen.com/subject/kgrkbttx.html