javascript是一种弱数据类型的脚本语言,这种语言呢,通常广泛的运用于web前端开发中,web前端开发由三个层面组成,第一层是结构,即是html,(hyper text markup language)超文本标记语言;第二层是样式,即是css,(cascading style sheet)层叠式样式表;第三层是行为,即是js(java script)脚本语言。

html在web制作中起到搭建框架的一个作用,用标签来搭建框架,css是赋予html的标签的一定的属性和属性值,js是用来实现web中的一些特效,js的作用有三点:用户交互;表单验证;网页特效

ECMAScript 中有5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number
和String。还有1 种复杂数据类型——Object,Object 本质上是由一组无序的名值对组成的。ECMAScript
不支持任何创建自定义类型的机制,而所有值最终都将是上述6 种数据类型之一。乍一看,好像只有6
种数据类型不足以表示所有数据;但是,由于ECMAScript 数据类型具有动态性,因此的确没有再定义
其他数据类型的必要了。

在js中有基本的数据类:数字类型(顾名思义即是数字)、字符串类型也叫string类型(其特征是有引号,引号中文字或字母,数字也可以是字符串,只要加在引号中,在js中字符串的引号是双引号或单引号都可以,要英文状态下引号才可以),例如这样var a='236';var i="niho";var k=" 你好吗?"、空类型(值为null)、未定义类型(undefined)、boolean类型(布尔类型false、true)。

typeof操作符就是用来鉴于ECMAScript 是松散类型的,因此需要有一种手段来检测给定变量的数据类型——typeof 就是负责提供这方面信息的操作符。对一个值使用typeof 操作符可能返回下列某个字符串:
 "undefined"——如果这个值未定义;
 "boolean"——如果这个值是布尔值;
 "string"——如果这个值是字符串;
 "number"——如果这个值是数值;
 "object"——如果这个值是对象或null;
 "function"——如果这个值是函数。
下面是几个使用typeof 操作符的例子:
var message = "some string";
alert(typeof message); // "string"
alert(typeof(message)); // "string"
alert(typeof 95); // "number"

1、Undefined类型
Undefined 类型只有一个值,即特殊的undefined。在使用var 声明变量但未对其加以初始化时,
这个变量的值就是undefined,例如:
var message;
alert(message == undefined); //true
UndefinedExample01.htm
这个例子只声明了变量message,但未对其进行初始化。比较这个变量与undefined 字面量,结
果表明它们是相等的。这个例子与下面的例子是等价的:
var message = undefined;
alert(message == undefined); //true
UndefinedExample02.htm
这个例子使用undefined 值显式初始化了变量message。但我们没有必要这么做,因为未经初始
化的值默认就会取得undefined 值。

2、Null类型
Null 类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null 值表
示一个空对象指针,而这也正是使用typeof 操作符检测null 值时会返回"object"的原因,如下面
的例子所示:
var car = null;
alert(typeof car); // "object"

3、Boolean类型
Boolean 类型是ECMAScript 中使用得最多的一种类型,该类型只有两个字面值:true 和false。
这两个值与数字值不是一回事,因此true 不一定等于1,而false 也不一定等于0。以下是为变量赋
Boolean 类型值的例子:
var found = true;
var lost = false;
需要注意的是,Boolean 类型的字面值true 和false 是区分大小写的。也就是说,True 和False
(以及其他的混合大小写形式)都不是Boolean 值,只是标识符。
虽然Boolean 类型的字面值只有两个,但ECMAScript 中所有类型的值都有与这两个Boolean 值
等价的值。要将一个值转换为其对应的Boolean 值,可以调用转型函数Boolean(),如下例所示:
var message = "Hello world!";
var messageAsBoolean = Boolean(message);

4、Number类型
Number 类型应该是ECMAScript 中最令人关注的数据类型了,这种类型使用IEEE754 格式来表示
整数和浮点数值(浮点数值在某些语言中也被称为双精度数值)。为支持各种数值类型,ECMA-262 定
义了不同的数值字面量格式。
最基本的数值字面量格式是十进制整数,十进制整数可以像下面这样直接在代码中输入:
var intNum = 55; // 整数
除了以十进制表示外,整数还可以通过八进制(以8 为基数)或十六进制(以16 为基数)的字面值
来表示。其中,八进制字面值的第一位必须是零(0),然后是八进制数字序列(0~7)。如果字面值中的
数值超出了范围,那么前导零将被忽略,后面的数值将被当作十进制数值解析。请看下面的例子:
var octalNum1 = 070; // 八进制的56
var octalNum2 = 079; // 无效的八进制数值——解析为79
var octalNum3 = 08; // 无效的八进制数值——解析为8

5、 String类型
String 类型用于表示由零或多个16 位Unicode 字符组成的字符序列,即字符串。字符串可以由双
引号(")或单引号(')表示,因此下面两种字符串的写法都是有效的:
var firstName = "Nicholas";
var lastName = 'Zakas';
与PHP 中的双引号和单引号会影响对字符串的解释方式不同,ECMAScript 中的这两种语法形式没
有什么区别。用双引号表示的字符串和用单引号表示的字符串完全相同。不过,以双引号开头的字符串
图灵社区会员 StinkBC(StinkBC@gmail.com) 专享 尊重版权

2. 字符串的特点
ECMAScript 中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变
某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量,
例如:
var lang = "Java";
lang = lang + "Script";
以上示例中的变量lang 开始时包含字符串"Java"。而第二行代码把lang 的值重新定义为"Java"
与"Script"的组合,即"JavaScript"。实现这个操作的过程如下:首先创建一个能容纳10 个字符的
新字符串,然后在这个字符串中填充"Java"和"Script",最后一步是销毁原来的字符串"Java"和字
符串"Script",因为这两个字符串已经没用了。这个过程是在后台发生的。
       浏览器(例如版本低于1.0 的Firefox、IE6 等)中拼接字符串时速度很慢的原因所在。但这些浏览器后
来的版本已经解决了这个低效率问题。

转换为字符串
要把一个值转换为一个字符串有两种方式。第一种是使用几乎每个值都有的toString()方
这个方法唯一要做的就是返回相应值的字符串表现。来看下面的例子:
var age = 11;
var ageAsString = age.toString(); // 字符串"11"
var found = true;
var foundAsString = found.toString(); // 字符串"true"
StringExample01.htm
数值、布尔值、对象和字符串值(没错,每个字符串也都有一个toString()方法,该方法返回字
符串的一个副本)都有toString()方法。但null 和undefined 值没有这个方法。
多数情况下,调用toString()方法不必传递参数。但是,在调用数值的toString()方法时,可
以传递一个参数:输出数值的基数。默认情况下,toString()方法以十进制格式返回数值的字符串表
示。而通过传递基数,toString()可以输出以二进制、八进制、十六进制,乃至其他任意有效进制格
式表示的字符串值。下面给出几个例子:
var num = 10;
alert(num.toString()); // "10"
alert(num.toString(2)); // "1010"
alert(num.toString(8)); // "12"
alert(num.toString(10)); // "10"
alert(num.toString(16)); // "a"
StringExample02.htm
通过这个例子可以看出,通过指定基数,toString()方法会改变输出的值。而数值10 根据基数的
不同,可以在输出时被转换为不同的数值格式。注意,默认的(没有参数的)输出值与指定基数10 时
的输出值相同。
在不知道要转换的值是不是null 或undefined 的情况下,还可以使用转型函数String(),这个
函数能够将任何类型的值转换为字符串。String()函数遵循下列转换规则:
1、 如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果;
2、如果值是null,则返回"null";
3、如果值是undefined,则返回"undefined"。
下面再看几个例子:
var value1 = 10;
var value2 = true;
var value3 = null;
var value4;
alert(String(value1)); // "10"
alert(String(value2)); // "true"
alert(String(value3)); // "null"
alert(String(value4)); // "undefined"

js中的命名是有规则的,是采取驼峰命名法、匈牙利命名法、帕斯卡命名法,命名是变量名是在数据类型后,var(一种强数据类型)   i(变量名)   =(赋值运算符)驼峰命名法是指首个单词字母小写,后面的单词首字母要大写,例如:var  oBut=25;而匈牙利命名法是跟驼峰命名法差不多,只不过首字母小写是数据类型的前缀 ,例如:var sUserName = 'css8';再则是帕斯卡命名法,也跟驼峰命名法差不多,与驼峰命名法不同在于它的首字母要大写例如:var PrintLoadTemplates;

java script的小基础相关推荐

  1. [微信小程序基础]Java Script从入门到放弃之首次接触Java Script

    文章目录 前言 一.JS入门学习之路 二.第一章: 做好准备 1.如何插入JS程序 2.如何引用外部JS文件 3.认识语句和符号 4.注释很重要 5.什么是变量 6.判断语句 7.什么是函数 三.第二 ...

  2. java小基础之代码块的霸道

    java小基础之代码块的霸道 1.介绍: 代码块的分类:{} 1.局部代码块:限制代码的作用域 书写位置:在方法中 霸道理由:比方法中的程序先一步被调用 2.构造代码块:在类中方法外, 霸道理由:如果 ...

  3. java script基础入门·2

    java script基础入门2 方法声明 <script>function arr(a,b) {return a+b;}let sum=arr(11,12);window.documen ...

  4. java ee的小程序_扩展Java EE应用程序的基础

    java ee的小程序 老实说,"可扩展性"是一个详尽的主题,并且通常没有被很好地理解. 通常,它被认为与高可用性相同. 我已经看到新手程序员和"经验丰富"的建 ...

  5. 第87节:Java中的Bootstrap基础与SQL入门

    第87节:Java中的Bootstrap基础与SQL入门 前言复习 什么是JQ? : write less do more 写更少的代码,做更多的事 找出所有兄弟: $("div" ...

  6. [Java面试三]JavaWeb基础知识总结.

    [Java面试三]JavaWeb基础知识总结. 1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Int ...

  7. [JAVA EE] JPA技术基础:完成数据列表的删除

    接上一篇:[JAVA EE] JPA技术基础:完成数据列表显示 本章完成数据列表的删除 修改 UserController.java package com.example.demo.controll ...

  8. JAVA并发之多线程基础(2)

    除了我们经常用的synchronized关键字(结合Object的wait()和notify()使用)之外,还有对应的上篇文章讲到的方法JAVA并发之多线程基础(1)之外,我们日常中使用到最多的也就是 ...

  9. 第90节:Java中的Linux基础

    第90节:Java中的Linux基础 linux是装载虚拟机上面的: JDK依赖包: yum install glibc.i686MYSQL依赖包: yum -y install libaio.so. ...

最新文章

  1. java培训:什么是抽象类?怎么定义?
  2. [M]MagicTable转换异常解决方法
  3. 动态规划算法的优化技巧
  4. XMLHttpRequest对象在IE和Firefox中创建方式有没有不同?
  5. Python:eval的妙用和滥用
  6. 加快liferay 7的启动速度
  7. 怎么在anaconda上安装python_win10肿么在已安装python2.7的基础上安装anaconda
  8. 位运算判断奇偶数_基础拾遗:除了amp;和amp;amp;的区别,你还要知道位运算的这5个运算符...
  9. php 生命变量,深入理解PHP原理之变量生命期(一)
  10. 数据库工作笔记013---如果存在表则删除表然后创建Mysql_drop table
  11. Date跟String类型之间的转换!
  12. python学习之dict的items(),values(),keys()
  13. log4j2自定义过滤器_Log4j级别示例–订单,优先级,自定义过滤器
  14. 如何使用会声会影标题工具制作弹幕效果
  15. vmware workstation 14 密钥
  16. 收藏 | 百度、美团 ClickHouse、Flink 干货总结!
  17. Android使用局域网打印机生成打印任务
  18. linux查看最后几行命令,linux查看文件的后几行(文件查看 如何显示最后几行 ,某几行)...
  19. JavaWeb购物平台小项目
  20. fast无线网卡linux驱动,fast FW150US USB无线网卡Linux驱动安装

热门文章

  1. [极客大挑战 2019]FinalSQL
  2. c语言中char16_t是什么类型,错误[Pe167]:类型为“uint16_t *”的参数与类型为“unsigned char *”的参数不兼容...
  3. ios客户端学习-被苹果开发者中心拒绝附件上传不上
  4. 电源滤波电容如何选择
  5. 数据建模中的二维表和一维表!
  6. Linux驱动——mmc card热插拔检测机制(十)
  7. Java——MVC框架
  8. 2017 Unite大会总结
  9. 海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(一)
  10. JVM垃圾收集器(三)