标签:逻辑运算 函数返回 表达式2 返回值 var 头部 -- 运算 标准库
JavaScript 是一种轻量级的脚本语言。所谓“脚本语言”,指的是它不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序(比如浏览器)的“脚本”,本身不提供任何的 API,都要靠宿主环境(host)提供,所以 JavaScript 只合适嵌入更大型的应用程序环境,去调用宿主环境提供的底层 API。
JavaScript 的核心语法部分相当精简,只包括两个部分:基本的语法构造(比如操作符、控制结构、语句)和标准库(就是一系列具有各种功能的对象比如Array、Date、Math等)。除此之外,各种宿主环境提供额外的 API(即只能在该环境使用的接口),以便 JavaScript 调用。以浏览器为例,它提供的额外 API 可以分成三大类。
JavaScript 和 Java 的关系。它们是两种不一样的语言,但是彼此存在联系。JavaScript 的基本语法和对象体系,是模仿 Java 而设计的。但是,JavaScript 没有采用 Java 的静态类型。”。JavaScript 语言的函数是一种独立的数据类型,以及采用基于原型对象(prototype)的继承链。这是它与 Java 语法最大的两点区别。另外,Java 语言需要编译,而 JavaScript 语言则是运行时由解释器直接执行。
javascript以行为单位执行
语句是为了完成某种任务而进行的操作,如
var a = 1 + 3;
6+ 3就叫做表达式
前者主要为了进行某种操作,一般不需要返回值
后者是为了得到返回值,一定会返回一个值
变量是对值的引用,使用变量等同于引用一个值
var a = 1
实际步骤是
var a;
a= 1;
由于js引擎的工作方式,先解析代码获取所有被声明的变量,然后再一行一行的执行,这样就造成了,所有变量的声明语句,都会被提升到代码的头部,这就是变量提升
变量名就是最常见的标识符,规则如:
第一个字符,可以是任意Unicode字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。
第二个字符及后面的字符,除了Unicode字母、美元符号和下划线,还可以用数字0-9。
var
命令中声明多个变量? :
,可以用于逻辑判断。(条件) ? 表达式
1 : 表达式
2
上面代码中,如果“条件”为true
,则返回“表达式1”的值,否则返回“表达式2”的值。数据类型
JavaScript 语言的每一个值,都属于某一种数据类型,共有六种.
其中数值,字符串,布尔值成为原始类型的值,undefined和null一般被视为特殊值,对象则为合成类型的值,往往由多个原始类型的值合成
JavaScript有三种方法,可以确定一个值到底是什么类型。
typeof运算符可以返回一个值的数据类型,可能有以下结果:
数值、字符串、布尔值分别返回number、string、boolean。
函数返回function,虽然函数属于对象,但是typeof内部是将函数是返回function
undefined返回undefined
数组的类型也是object,这表示在JavaScript内部,数组本质上只是一种特殊的对象。
可以用instanceof运算符进行区分
NaN是 JavaScript 的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。
5 - ‘x‘ // NaN
上面代码运行时,会自动将字符串x转为数值,但是由于x不是数值,所以最后得到结果为NaN,表示它是“非数字”(NaN)。
另外,一些数学函数的运算结果会出现NaN。
Math.acos(2) // NaN
Math.log(-1) // NaN
Math.sqrt(-1) // NaN
0除以0也会得到NaN。
0 / 0 // NaN
需要注意的是,NaN不是独立的数据类型,而是一个特殊数值,它的数据类型依然属于Number,使用typeof运算符可以看得很清楚。
typeof NaN // ‘number‘
NaN不等于任何值,包括它本身。
NaN === NaN // false
数组的indexOf方法内部使用的是严格相等运算符,所以该方法对NaN不成立。
[NaN].indexOf(NaN) // -1
NaN在布尔运算时被当作false。
Boolean(NaN) // false
NaN与任何数(包括它自己)的运算,得到的都是NaN。
Infinity表示“无穷”,用来表示两种场景。一种是一个正的数值太大,或一个负的数值太小,无法表示;另一种是非0数值除以0,得到Infinity。
第一个场景是一个表达式的计算结果太大,超出了能够表示的范围,因此返回Infinity。第二个场景是0除以0会得到NaN,而非0数值除以0,会返回Infinity。
Infinity有正负之分,Infinity表示正的无穷,-Infinity表示负的无穷。
非零正数除以-0,会得到-Infinity,负数除以-0,会得到Infinity。
由于数值正向溢出(overflow)、负向溢出(underflow)和被0除,JavaScript 都不报错,所以单纯的数学运算几乎没有可能抛出错误。
Infinity大于一切数值(除了NaN),-Infinity小于一切数值(除了NaN)。
Infinity与NaN进行比较,总是返回false。
Infinity的四则运算,符合无穷的数学计算规则。
0乘以Infinity,返回NaN;0除以Infinity,返回0;Infinity除以0,返回Infinity。
Infinity加上或乘以Infinity,返回的还是Infinity。
Infinity减去或除以Infinity,得到NaN。
Infinity与null计算时,null会转成0,等同于与0的计算。
Infinity与undefined计算,返回的都是NaN。
下列运算符会返回布尔值:
下面这些值如果转化为布尔值则为false,其他都为true
空数组( [] )和空对象( {} )转化为布尔值为true
1、 .toString()方法:注意,不可以转null和underfined
//转为字符串-->toString方法
var bool=true;
console.log(bool.toString());
//注意,toString不能转null和underfined.
2、String()方法:都能转
console.log(String(null));
3、隐式转换:num + "",当 + 两边一个操作符是字符串类型,一个操作符是其它类型的时候,会先把其它类型转换成字符串再进行字符串拼接,返回字符串
var a=true;
var str= a+"";
console.log(‘str‘);
1、Number():Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN
console.log(Number(true));
2、parseInt():
var a="12.3px";
console.log(parseInt(a);
//结果:12.3. 如果第一个字符是数字会解析知道遇到非数字结束.
var a="abc2.3";
console.log(parseInt(a);
////结果:返回NaN,如果第一个字符不是数字或者符号就返回NaN.
3、parseFloat(): parseFloat()把字符串转换成浮点数,parseFloat()和parseInt非常相似,不同之处在与parseFloat会解析第一个. 遇到第二个.或者非数字结束如果解析的内容里只有整数,解析成整数。
4、隐式转换:
var str="123";
var num=str-0;
console.log(num);
//结果为数值型;
1、Boolean():
console.log(Boolean(2));
2、一些环境中
var message;
if(message){};
3、隐式转换:!!
var str="123";
var bool=!!str;
console.log(str);
标签:逻辑运算 函数返回 表达式2 返回值 var 头部 -- 运算 标准库
原文地址:https://www.cnblogs.com/ZXH-null/p/12303833.html