HTML5字符串是不是原始类型,JavaScript-变量-原始类型primitive type

一.变量-声明

// JS变量: 弱类型, 动态类型

var a = 3

a = "lioil"

a = true

var b=2, c=3

// 加var声明,作用范围在代码块{}中

// 不加var声明,作用范围为全局

function hello(){

var h = "hello";

w = "world";

}

hello();

alert(h);

alert(w);

二.变量-原始类型primitive type(5种)

number 数字(不分整型或浮点型)

string 字符串

boolean 布尔

null 对象类型的占位符, 人为赋值null(系统不会自动赋值null)

undefined 未定义, null衍生类型(变量没有初始化,系统自动赋值undefined)

// 多行的字符串直接量, 则需要在每行结束时加入反斜杠(\)

var str = "hello,\

world,\

nihao";

var a = 3;

var b = 3.14;

var c = "hello";

var d = 'world';

var e = true;

var f = null;

var g = undefined;

var h ;

var o = new Object();

// 运算符typeof: 原始类型的类型判断

alert(typeof a);

alert(typeof b);

alert(typeof c);

alert(typeof d);

alert(typeof e);

alert(typeof f); //typeof null结果是object, 这是个历史遗留BUG, null是object的占位符,期望object

alert(typeof g);

alert(typeof h);

alert(typeof o);

console.log("hello") // 浏览器控制台输出(F12调试开发者工具)

console.dir("world") // 浏览器控制台显示数据类型结构

1.number数字

和其他语言不一样,JavaScript不区分整数和浮点数,JavaScript中的所有数字都是用浮点数来表示

JavaScript支持常见的算术表达式: 加(+) 减(-) 乘(*) 除(/) 求余(%)

JavaScript还支持更加复杂的运算,被封装在Math对象的方法中:

Math.pow(m,n) m的n次幂

Math.round(0.6) 四舍五入,结果为1

Math.ceil(0.6) 向上取整,结果为1

Math.floor(0.6) 向下取整,结果为0

Math.abs(-6) 取绝对值,结果为6

Math.max(x,y,z) 取最大值

Math.min(x,y,z) 取最小值

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

2.string字符串

var s = 'hello,world';

s.charAt(0) 获取索引为0的字符, 此处返回'h'

s.charCodeAt(0) 获取索引为0的字符编码

s.substring(1,4) 从索引位置截取子串, 此处返回'ell'

s.slice(1,4) 同上, 返回'ell'

s.slice(-3) 取最后三个字符, 此处返回'old'

s.indexOf('l') 第一次出现字符l的位置, 此处返回2

s.lastIndexOf('l') 最后一次出现字符l的位置, 此处为9

s.split(',') 用字符','来将字符串分隔为数组, 此处返回数组['hello','world']

s.replace('h','H') 将'h'替换为'H', 此处返回'Hello,world'

s.toUpperCase() 返回大写的形式, 此处返回'HELLO,WORLD'

1.数学运算

(1).一元运算符+ -, string,boolean转为number类型

var a = "1";

console.log(typeof a); // string

console.log(typeof +a); // number

console.log(+true); // 1

console.log(+false); // 0

(2).加法运算, number会转为string

console.log(+"50" + 1); // 结果51, +"50"会自动转为50

console.log("50" + 1); // 结果501

console.log("50" + "1"); // 结果501

console.log("50" + "a"); // 结果50a

(3).其余数学运算, string会转为number

console.log("50" - 1;) // 结果49

console.log("50" - "1";) // 结果49

console.log("50" * "2";) // 结果100

console.log("50" * "a";) // 结果NaN

2.关系运算

(1).字符串和数字比较,字符串转成数字

console.log("123" > 3) // true "123"转成123

console.log("a" > 1) // false "a"转成NaN

console.log("a" < 1) // false "a"转成NaN

console.log("a" == 1) // false "a"转成NaN

(2).字符串和字符串比较,每个字符都转成ascii码,然后一一比较

console.log("123" > "3") // false

console.log("abc" > "ab") // true

(3).汉字比较,每个字符转成Unicode码(0-65535之间整数)

console.log("中".charCodeAt(0)); // 20013

console.log("国".charCodeAt(0)); // 22269

console.log("中" < "国"); // true

3.boolean布尔

布尔类型表示真或假,只有两个值,true和false

JavaScript任意类型都可以转换为boolean布尔值,转换规则如下:

number => 除了+0,-0,NaN,其它都是true

string => 除了空字符串"",其它都是true

Object => 都是true

+0,-0,NaN,"",null,undefined => false,剩下的全都是true

例如:

if(0 || -0 || NaN || "" || null || undefined)

console.log('至有一个是true');

else

console.log('全都是false');

1.等于==, 只比较内容

console.log(0 == true); // false

console.log(1 == true); // true

console.log(NaN == NaN); // false 凡是NaN参与判断运算符,除了! !=,其余全是false

console.log(0 == null); // false null转成NaN

console.log(null == undefined); // true undefined转成null

2.全等于===, 除了比较内容,还要比较类型

console.log(1 === true); // false 内容相同,类型不同

console.log(1 === "1"); // false 内容相同,类型不同

console.log(null === undefined); // false 内容相同,类型不同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值