Giter VIP home page Giter VIP logo

Comments (2)

maxbeatty avatar maxbeatty commented on July 26, 2024

why does typeof(fileContents); return object instead of string

If no encoding is specified for readFile, then the raw buffer is returned which is why typeof is reporting an object. The Buffer class provides a method to inspect an object to see if it is a buffer (isBuffer).

Buffer.isBuffer(fileContents) // should return true

To make fileContents a string, you can either provide an encoding option for readFile or call toString on fileContents.

why will this example work without parseInt?

parseInt converts its string param to a string if it isn't one already (effectively fileContents.toString()). Increment (++) doesn't document as such, but with a little testing I saw it behave the same as you could expect a string when performing arithmetic.

var assert = require('assert');

function increment(n) {
  nn = n++
  // increment returns s as a number to nn
  assert.equal(typeof(nn), 'number')
  // n is now also a number (not original type) and has value incremented
  assert.equal(typeof(n), 'number')
  assert.equal(n, 2)
}

// strings as numbers
s = '1'
assert.equal(typeof(s), 'string')
increment(s)


// buffers as numbers
b = new Buffer('1')
assert(Buffer.isBuffer(b))
increment(b)

Mystery solved?

from art-of-node.

mgruesbeck avatar mgruesbeck commented on July 26, 2024

Awesome @maxbeatty!! It's a mystery no more.

You also gave me some neat tests to play with as well! Thanks for that. A great experiment for the making of new spells and potions.

Cheers!

from art-of-node.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.