JavaScript学习笔记之二基本数据类型

本文介绍了JavaScript的基本类型,特别是字符串的使用与操作方法。包括单引号与双引号的使用、转义字符的应用、字符串长度获取、子字符串提取、字符定位、字符串分割与拼接、以及字符串大小写转换等基本概念。

JavaScript的基本类型,是弱数据类型。各种类型可以随意转换。

//string

var sVar= "Hello World";

var sVarAlt= 'Hello World';

//number(integer &&float)

variVar=1234;

varfVar= 12.34;

//boolean

varbVar= true;

//null &&undefined

var vNull=null;

varvUndefined= undefined; //特有的undefined表示null

下面重点看一下String。

//string, 单引号和双引号都可以

varsVar= "Hello World";

varsVarAlt= 'Hello World';

//转义符是\

varsEsc= "Hello \"World\"";

  // Hello "World"

//\n表示换行,\r表示回车,\t表示tab键

varsNL= "Hello\nWorld";

  // Hello

  // World

// string operations
var sText = "test string";
alert(sText.length);          // 11
alert(sText.substring(5,7));  // "st"
alert(sText.charAt(5));       // "s"
alert(sText.indexOf("s"));    // 2


// string separation
var sNames = "Peter,Tim,Frank,Andreas";
var aNames = sNames.split(","); 
    // "Peter", "Tim", "Frank", "Andreas"

// string transformation
alert("JavaScript".toUpperCase()); 

下面,有个关于string类型的练习,是用js实现凯撒加密。

In Caesar's cipher,  each character is shifted by a certain offset
Consider charCodeAt (), fromCharCode (),and %
Use a for loop, e.g. for (var i = 0; i < n; i++) { … }
Test the cipher for the alphabet withdifferent offsets
我实现了加密和解密算法,下面的实现仅仅局限于字母,并且为全部小写或全部大写,因为偏移量是26,不支持大小写混合。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>JavaScript - Primitive Data Types</title>
  </head>
  <body>
    <script>
      var alphabet = String("cathytestinjszwy");
      var offset = 1; //Type offset between 0-26
      var startCode = String("a").charCodeAt(0);
      console.log(startCode);

      var newCode;
      var newAlphabet = "";
//encrypt
      for (var i = 0; i < alphabet.length; i++) {
        newCode = startCode + (alphabet.charCodeAt(i) - startCode + offset) % 26;
        newAlphabet += String.fromCharCode(newCode);
      }


      console.log(newAlphabet);
 //decrypt
 var rollback="";
 for (var j = 0; j < newAlphabet.length; j++) {
        newCode = startCode + (newAlphabet.charCodeAt(j) - startCode - offset+26) % 26; //这里需要注意,在解密过程中是逆向解码,会出现负值,必须加上26才能保证正确
        rollback += String.fromCharCode(newCode);
      }
 console.log(rollback);
    </script>
  </body>
</html>

测试了极值,上面这段程序都是对的,大家可以copy出来存成html试试。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值