Js特点,数据类型及转换
Posted liu_kaiyao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Js特点,数据类型及转换相关的知识,希望对你有一定的参考价值。
特点
1) 不仅可以运行在浏览器,也可以运行在服务器【nodejs环境】
浏览器
动画、事件、表单验证
服务器
操作数据库、网络
mysql
2) 可以减轻服务器的压力
可以通过表单验证来约束用户输入的内容,如果内容格式与表单验证的规则不一致,则不会发送请求
3) 解释型语言
c -> 编译 -> 运行
js -> 运行
所有的主流浏览器都内置了js的解析器
4) 弱类型语言
变量的数据类型可以随时的变化
5) 浏览器是从上往下解析js代码
1) js的使用方式
1. 内部引用
<script> </script>
2. 外部引用
<script src=""></script>
2) 变量
0. 注释
单行注释 //
多行注释 /* */
1. 定义
是一个容器,可以存放任意数据类型的值
2. 声明
使用关键字var
var a;
关键字
js中具有特殊作用的变量
保留字
将来有可能成为关键字的变量
注意:
1、变量可以是数字、字母、下划线、$组成
2、不能是数字、下划线开始
3、不能使用关键字和保留字
4、多个变量声明时可以只写一个var
var a,b,c;
5、变量的命名应该是驼峰命名法
var userName = \'\';
var userPassword = \'\';
3. 初始化
var a; a = 1;
var b; b = [];
变量的声明和初始化同时进行
var a = 1;
3) 数据类型
基本数据类型
数字类型 number 整数 var a = 1; 浮点数 var b = 1.2; 非数字 NaN not a number var c = 10/\'hello\'; // NaN (isNaN 检测当前变量是否是非数字,如果不是数字,则返回true) console.log(isNaN(c)); // true 字符串类型 string \'\' 或 "" var a = \'\'; // 空字符串 var b = \'hello js\'; // hello js 布尔类型 boolean true/false,一般用于条件的判断 var a = true; // true null 空对象 var obj = null; obj = {name:\'tom\',age:23}; undefined 变量声明未初始化 数据类型的检测,使用typeof var str = \'5\'; var bol = true; console.log(\'str:\',typeof(str)); // string console.log(\'bol:\',typeof(bol)); // boolean console.log(\'null:\',typeof(null)); // object console.log(\'undefined:\',typeof(undefined)); // undefined console.log(\'arr:\',typeof([])); // object 可以正确检测除了null之外的所有基本数据类型
引用数据类型
数组 array var a = []; // 空数组 var b = [1,\'1\',null,function(){}] 对象 object var a = {}; 函数 function var a = function(){} es6 原始数据类型 6 种,symbol
4) 内存图
基本数据类型保存在栈区,引用数据类型保存在堆区(引用数据类型在栈区保存的是一个指针)
值传递
var a = 1;
var b = a;
b++;
console.log(a); // 1
引用传递
var c = {
age:12
};
var d = c;
d.age++;
console.log(c.age); // 13
5)基本数据类型的转换
将其他数据类型转换为number
1. 将字符串转换为number => +、-、 Number() var a = \'hello\'; var b = \'\'; console.log(+a); // NaN console.log(Number(a)); // NaN console.log(Number(b)); // 0 2. 将布尔转换为number var a = true; +a; // 1 var b = false; +b; // 0 3. 将null、undefined转换为number var a = null; +a; // 0 var b = undefined; +b; // NaN 4.parseInt() ---将字符串中有效整数转换为Number a=parseInt("123aa") //123 a="123e234"//123 a="e123"//NaN 5.parseFloat() 对非string用parseInt(),parseFloat(),会先将其转换为string a=true; a=parseInt(a) //NaN
将其他数据类型转换为string
String() toString() 1. 将数字类型转换为string var a = 1; String(a); // \'1\' a.toString(); // \'1\' 2. 将布尔类型转换为string 3. 将null、undefined转换为string null ->null /underfined->不可转
3.将其他数据类型转换为boolean
!! Boolean() 1. 将数字类型转换为boolean --只有0,NaN是F var a = 0; !!a; // false var b = 1/-11; !!b; // true var c = NaN; !!c; // false 2. 将字符串类型转换为boolean --空字符串为F var a = \'\'; !!a; // false var b = \'hello\'; !!b; // true 3. 将null、undefined转换为boolean--都F var a = null; !!a; // false var b = undefined; !!b; // false 4. 对象 --True
6.包装类
String(),Number(),Boolean()
可将基本数据类型转换为对象var num = new Number(3); //num是number对象 console.log(typeof(num)); //object num.a = \'aaa\'; //对象可添加属性 !对象间比较false
方法和属性只能添加给对象
当基本数据类型调用属性和方法时,浏览器用包装类将其转换为对象再调用,之后转回基本数据类型var a = 11; a = a.toString(); //调用number对象的toString
1、引号使用规则
1) 如果外层使用了双引号,内层只能使用单引号
"{\'name\':\'tom\'}"
2) 如果外层使用了单引号,内层只能使用双引号
\'{"name":"tom"}\'
错误格式:
"{"name":"tom"}"
\'{\'name\':\'tom\'}\'
2、构造函数和普通函数的区别
普通函数:
function sayName(){}
sayName
构造函数(首字母大写)
Number
内置函数
console.log()
Number()
Boolean()
String()
parseInt()
parseFloat()
构造函数
Array() Object()
以上是关于Js特点,数据类型及转换的主要内容,如果未能解决你的问题,请参考以下文章