js的类型有多种分类,原始类型(数值,字符串,布尔值,null,undefined)和对象类型(object,String,Number,RgbExp等),或者是拥有方法的类型(object,String,Number,RgbExp,数值,字符串,布尔值等)和没有方法的类型(null,undefined)等。

js变量是无类型的,也即变量可以被赋予任何类型的数值。

js对数字的操作:

不区分整数值和浮点数值,js中的所有数都是使用的浮点数表示的,能够表示的数值范围(-900719925470992~9007199254700992),超过此范围,js就无法保证低位数的精度。js用Infinity表示正无穷,用—Infinity表示负无穷,用NaN表示非数字

算术运算:加(+)减(-)乘(*)除(/)求余(%),除此之外还有借助Math对象来实现的

     Math.pow(2,1)  //2的53次幂

     Math.round(2.4)//四舍五入

     Math.ceil(2.4) //向上取整

        Math.floor(2.4) //向下取整

     Math.abs(-3) //绝对值

      Math.min(2,1)//最小值

      Math.max(2,1) //最大值

      Math.exp(2) //e的2次幂

      Math.random() //生成一个0到1之间的随机数

      Math.PI//圆周率

      Math.E//自然对数的底数

二进制浮点数和四舍五入错误:

  js采用的二进制浮点数,因此有限多个实数,因此大多数的js表示的实数都只是近似值,比如0.3-0.1和0.2-0.1不相等,因此在进行js运算时,要尽量避免浮点数的相加减。

将数字转换成字符串:

可以简单地调用toString(c1)方法,且此方法接受一个可选的参数,c1代表转换基数。比如var n = 17;n.toString(2) = 10001;当c1不存在时,默认的转换基数为10;另外Number为数字转换成字符串的机制设置了三种方式,分别是

toFixed(c1)c1代表保留小数的位数,这种方式,不会转换成科学计数法

toExponential(c1)c1代表有效位数,这种方式采用科学计数法

toPrecision(c1)c1代表有效位数,当c1小于n的整数位数时,采用科学计数法,反之采用直接转换法

js对字符串的操作:

将字符串转换为数字:

Number()这种方式可以将数字字符串转换成整数或浮点数字面量,基数只能是10,并且,字符串中不能包含其他的非法字符后缀

parseInt()只解析字符串中的整数,如果有前缀o,则解析成8进制,有前缀0x,则解析成 16进制

parseFloat()可以解析字符串的浮点数

parseInt()和parseFloat()在解析字符串的时候,如果第一个非空格字符是非法的数字直接量(比如“.8”、"abc89"),都会返回NaN。

字符串前直接加“+”或“-”这种方式可以将数字字符串转换成整数或浮点数字面量,基数只能是10,并且,字符串中不能包含其他的非法字符后缀

另外补充加号的作用及用法(

作用:

1.正数表示法

2.相加符号

3.字符串之间的连接符

用法:

1、如果+(加号)两边都是数字,则肯定是加法运算

2、如果+两边有boolean、number类型或null值的某一个,则是加法运算,比如:1+true是2,true+true也是2,null+false是0,1+null是1

3、如果加号两边有最少一边是字符串,则是字符串拼按,比如1+”abcd”

4、如果加号两边最少有一边是是对象类型,这个对象先对象它的toString方法,然后再做字符串拼接,比如:(这些涉及到一些对象的原理性的东西,先做简单了解,以           后会讲)5+[1,2,3,4]  是51,2,3,4   比如({}+{})是 "[object Object][object Object]"

5、数字、布尔、null和undefined做加运算的结果是NaN。

对象转换为原始值:

toString(),函数、数组、正则、时间对象都可以使用这个方法转换成相对应的字符串。

valueOf()很多对象使用这个方法会放回对象本身,而不是原始值。时间类型的对象会返回毫秒数。

对象到字符串的转换会首先考虑toString(),再考虑valueOf();而对象到数值的转换,会首先考虑valueOf(),再考虑toString()

js对变量的操作:

js的预编译规则,是当处理器首次扫描文档时,首先会将声明的参数、函数、变量名(值为undefined)放入内存,(声明提前)然后再从上到下执行上下文。其中执行变量值的优先级是函数—>参数—>变量名 。看下面的例子:

1.下面这个例子中,第一个a是因为 ,当执行到函数时,此时函数内部定义了局部变量,所以在函数预编译的时候,先是将变量a(值为undefined)存入内存,当执行上下文到alert(a)的时候,a=undefined;第二个a就是全局a;

var a = 1;
function fn1() {
alert( a ); //underfined
var a = 2;
}
fn1();
alert( a ); //1
2.下面这个例子中,第一个a是因为,当执行到函数的时候,函数内部没有定义a,此时沿着作用域链向上查找到全局的a=1;第二个a是因为 在函数内部的定义的a是全局变量,在执行了fn1()之后,a=2的值取代了a=1的值

var a = 1;

function fn1() {
alert( a );// 1
a = 2;
}
fn1();
alert( a ); //2

3.当存在参数时,因为执行到函数的时候,由于js的预编译中,优先级是函数大于参数大于变量,所以使得第一个a=function a(){ }而不是3
var a = 3;
function test( a ){
alert( a ); //function a(){ }
var a = 123; 
function a(){ }
alert( a ); //123
}
test(a); 
下面是一些例子:
例1.

var a = 1;

function fn1() {
alert( a );//1
a = 2;
}
fn1(a);
alert(a);//2;

例2.

var a = 10;
function aaa() {
alert( a );
}
function bbb() {
var a = 20;
aaa();
}
bbb();//10
例3.
function a(i) {
alert(i);//10
alert(arguments[0]); //arguments[0]应该就是形参 i     //10
var i = 2;
alert(i);//2
alert(arguments[0]);//2
};
a(10);

javascript的类型、值和变量的更多相关文章

  1. javascript 核心语言笔记- 3 - 类型、值和变量

    JavaScript 中的数据类型分为两类:原始类型(primitive type)和对象类型(object type).原始类型包括数字.字符串和布尔值 JavaScript 中有两个特殊的原始值: ...

  2. JavaScript由浅入深(一)——类型、值和变量

      JavaScript是一门面向web的.高端的.动态的.弱类型的编程语言,是学习web前端开发必备的基础技能之一.JavaScript最初是一门脚本语言(scripting-language),它 ...

  3. Javascript权威指南——第二章词法结构,第三章类型、值和变量,第四章表达式和运算符,第五章语句

    第二章 词法结构 一.HTML并不区分大小写(尽管XHTML区分大小写),而javascript区分大小写:在HTML中,这些标签和属性名可以使用大写也可以使用小写,而在javascript中必须小写 ...

  4. 第三章:Javascript类型、值和变量。

    计算机程序的运行需要对值(value)比如数字3.14或者文本"hello world"进行操作,在编程语言中,能够表示并操作的值的类型叫做数据类型(type),编程语言最基本的特 ...

  5. JavaScript的类型、值和变量的总结

    前言:JavaScript的数据类型分为两类:原始类型和对象类型.5种原始类型:数字.字符串.布尔值.null(空).undefined(未定义).对象是属性的集合,每个属性都由“名/值对”(值可以是 ...

  6. 笔记《JavaScript 权威指南》(第6版) 分条知识点概要2—类型、值、变量

    [类型.值.变量]数字.文本.布尔值.null和undefined.全局对象.包装对象.不可变的原始值和可变的对象引用.类型转换.变量声明.变量作用域 P44~71(PDF版).P32~59(书版) ...

  7. Javascript权威指南阅读笔记--第3章类型、值和变量(1)

    之前一直有个想法,好好读完JS权威指南,便于自己对于JS有个较为全面的了解.毕竟本人非计算机专业出生,虽然做着相关行业的工作,但总觉得对于基础的掌握并没有相关专业学者扎实,正好因为辞职待业等原因,还是 ...

  8. JavaScript权威指南第03章 类型、值和变量(1)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/huangbin10025/article/details/27953481 类型.值和变量 数据类型 ...

  9. JavaScript权威指南--类型、值和变量

    本章要点图 数据类型:计算机程序的运行需要对值(value)比如数字3.14或者文本"hello world"进行操作,在编程语言中,能够表示并操作的值的类型叫做数据类型(type ...

  10. JavaScript权威指南科03章 种类、值和变量(1)

    种类.值和变量 数据类型分类: 基本类型(primitive type):数位 弦 布尔值 null undefined 对象类型(object type): 对象是属性的集合,每一个属性都由&quo ...

随机推荐

  1. saltstsck执行sls配置

    salt '*' state.sls init.pkgsalt '*' state.sls init.pkg test=true

  2. *HDU 1086 计算几何

    You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/3 ...

  3. HDU2653 BFS+优先队列

    Waiting ten thousand years for Love Time Limit: 10000/2000 MS (Java/Others)    Memory Limit: 32768/3 ...

  4. css3动画效果

    css3中的transform中有旋转,放缩,倾斜,平移的功能,分别对应的属性是:rotate,scale,skew,translate 旋转:(rotate) [css] view plaincop ...

  5. List转换成json格式字符串,json格式字符串转换成list

    一.List转换成json字符串 这个比较简单,导入gson-x.x.jar, List<User> users = new ArrayList<User>(); Gson g ...

  6. USACO翻译:USACO 2014 MARCH Silver三题

    USACO 2014 MARCH 一.题目概览 中文题目名称 农田灌溉 懒牛 牛叫 英文题目名称 irrigation lazy mooomoo 可执行文件名 irrigation lazy mooo ...

  7. DoModal时带出次级窗口闪现

    最近在做MFC 界面开发. 在一个CDialog窗口DoModal模态显示时, 会将次级窗口带出闪现(比如将一个窗口active, 然后点击我现在程序需要弹框的按钮,弹出弹出正常,但原来active的 ...

  8. ThinkPHP 3.2.3 加减乘法验证码类

    ThinkPHP 3.2.3 自带的验证码类位于 /ThinkPHP/Library/Think/Verify.class.php,字体文件位于 /ThinkPHP/Library/Think/Ver ...

  9. 配置webdriver环境

    安装环境pip install selenium,提示 Could not find a version that satisfies the requirement selenium (from v ...

  10. 一起来做chrome扩展《AJAX请求》

    chrome在一次更新之后,出于安全考虑,完全的禁止了content_script从https向http发起ajax请求,即使正常情况下也会在console里给出提示.这对于WEB来讲是好事,但对于扩 ...